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的内容:

  • 布尔FALSE本身
  • 整数0(零)
  • 浮点数0.0(零)
  • 空字符串和字符串“0”
  • 具有零元素的数组
  • 具有零成员变量的对象(仅限PHP 4)
  • 特殊类型的NULL(包括未设置的变量)
  • 由空标签创建的SimpleXML对象
  • 每个其他值都被视为TRUE(包括任何资源)。

    来源:http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting

    在你的问题中,一个变量是在if()语句内求值的。 如果该变量未设置,则根据上面的列表将其评估为false。 如果它已设置或具有值,则它将评估为true,因此将在if()分支内执行代码。

    链接地址: http://www.djcxy.com/p/10085.html

    上一篇: How exactly does if($variable) work?

    下一篇: How to enable PHP short tags?