这是我的代码:
<?php
$ja = '';
if(isset($ja))
echo "cool!";
?>
我觉得“很酷!”在我的浏览器中运行这段简单的代码时。我从php.net学到了
isset - 确定是否设置了变量 并且不是NULL
好吧,在我的代码中,我确实声明了变量$ ja,但我没有添加任何值,所以不应该是“NULL”吗?
答案 0 :(得分:5)
即使''似乎没什么,它仍然有一个值(字符串末尾的NULL字符)。
isset()
检查变量是否设置,在这种情况下(到''),它是。您可能希望事先将$ ja设置为NULL,而不是将其设置为空字符串...或使用empty()
;)
答案 1 :(得分:3)
空字符串仍然是一个值。所以你做了给它一个非空的值 - ''
是一个完全正常的字符串值。也许你想要! empty($ja)
答案 2 :(得分:3)
Isset用于判断是否设置了变量:
isset($notDefined) //false
$notDefined = 0;
isset($notDefined) //true
(假设之前没有定义$ notDefined)
要检查变量是否为空,您可以使用if(empty($var))
或if($var==0)
答案 3 :(得分:3)
您确实为$ ja添加了值 - 您将其设置为空字符串。空字符串不为空。
您可能会感到困惑的是,当您将其转换为布尔值时,空字符串和null都会在PHP中评估为“false”。
PHP的文档在使用isset时非常清楚。
答案 4 :(得分:0)
isset函数确定对象是否具有值。 “NULL”确实是赋予对象任何值的唯一方法。 $ s =''只是输出什么都没有。 BOOL值(true / false)表示它是yes或no ... 0只是给对象一个int值为0。
答案 5 :(得分:-1)
正如名称所暗示的那样,它会检查是否已设置某个变量,从某种意义上说它不具有某些值,但从某种意义上说它已经被创建了。我认为这个名字可能有点令人困惑,所以我将带来一个javascript类比。在javascript中检查变量是否存在,请执行以下操作:
if (typeof(somevar) == "undefined")
alert("Sorry, the variable has not been set already")
else
alert("Congratulations, the variable has not been set")
所以,你正在做的是你正在创建一个变量$ja
,因为这样做,变量已经存在,因此已经设置。
希望这有帮助