if($ variable)的工作方式到底如何?
可能重复:
关于PHP中的if语句
在PHP脚本中 - 像这样的if语句检查什么?
<?php if($variable){ // code to be executed } ?>
我已经多次看到它在脚本中使用,现在我真的想知道它“寻找什么”。 它不会错过任何东西; 它只是一个在if语句中的简单变量......我无法在任何地方找到任何关于此的结果,所以很明显,我会看起来很愚蠢。
构造if ($variable)
测试以查看$variable
是否计算为任何“真值”值。 它可以是布尔值TRUE
,也可以是非空值,非NULL值或非零值。 查看PHP文档中布尔评估的列表。
从PHP文档:
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
但请注意, if ($variable)
不适合在测试变量或数组键是否已初始化时使用。 如果它的变量或数组键不存在,则会导致E_NOTICE Undefined variable $variable
。
如果将$variable
转换$variable
布尔值,并根据该转换的结果进行操作。
有关更多信息,请参阅布尔文档。
要明确地将一个值转换为布尔值,可以使用(bool)或(boolean)强制转换。 但是,在大多数情况下, 转换是不必要的,因为如果运算符 ,函数或控制结构需要布尔参数, 则会自动转换值。
以下列表解释了在PHP中认为评估为false
的内容:
每个其他值都被视为TRUE(包括任何资源)。
来源:http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting
在你的问题中,一个变量是在if()
语句内求值的。 如果该变量未设置,则根据上面的列表将其评估为false。 如果它已设置或具有值,则它将评估为true,因此将在if()
分支内执行代码。