if($variable)究竟是如何工作的?

php
2022-08-30 08:54:54

可能的重复:
关于 PHP 中的 if 语句

在PHP脚本中 - 像这样的if语句检查什么?

<?php if($variable){ // code to be executed } ?>  

我已经多次看到它在脚本中使用,现在我真的很想知道它“寻找”什么。它没有遗漏任何东西;它只是if语句中的一个普通变量...我在任何地方都找不到有关此内容的任何结果,所以显然我会看起来很愚蠢。


答案 1

构造测试以查看是否计算为任何“真实”值。它可以是布尔值,也可以是非空值、非 NULL 值或非零数。查看 PHP 文档中的布尔评估列表。if ($variable)$variableTRUE

从 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


答案 2

if 转换为布尔值,并根据该转换的结果进行操作。$variable

有关详细信息,请参阅布尔文档。

若要将值显式转换为布尔值,请使用 (bool) 或 (布尔)转换。但是,在大多数情况下,强制转换是不必要的,因为如果运算符、函数或控制结构需要布尔参数,则会自动转换值


推荐