if ($var) 仅当 $var 的值包含不为 false 的内容时才执行 true。如果您想知道什么是 false/true 值,请从 php.net 中查看以下内容
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)
如果 ($var)有一个定义(据我所知),如果$var具有非假值,则评估为真
我建议强制转换并检查特定类型。
我也不同意明确的检查是“垂死的艺术”。请注意以下事项:
$var = 1;
if($var) // returns true since $var is 1
然而,
if ($var === true) // returns false since $var is not true its 1
结论:如果我想特别检查 $var 必须保存一个布尔值,我不会使用if ($var),因为它会在系统中创建一个错误。