将isset($foo)
始终显示与!$foo
?
我有一段代码,我在使用时收到 php 警告:
if(!$foo){}
而且我很确定我应该使用:
if(!isset($foo)){}
这让我很好奇我是否要改变这里的功能。
将isset($foo)
始终显示与!$foo
?
我有一段代码,我在使用时收到 php 警告:
if(!$foo){}
而且我很确定我应该使用:
if(!isset($foo)){}
这让我很好奇我是否要改变这里的功能。
不。
使用布尔否定运算符!
将变量转换为布尔值。BooleanFALSE
等于NULL
(这在功能上与 相同isset()
),空字符串,0,空数组。
isset
如果变量不存在,则不使用错误。如果您使用!
不存在的变量,E_NOTICE
则会显示。
不。
一个测试一个值是否未设置,另一个测试它是否为真。
相比:
<?php
$foo = 0;
if(!$foo){ echo 1; }
if(!isset($foo)){ echo 2; }
?>
这取决于 foo 是什么。
Foo 可以设置为 1 或您应用 not 的某个值。因此,即使设置了变量,您也可能会出现意外行为