所有的PHP类型都返回一个布尔值吗?
我目前正在建立一个网站,我遇到了我可以做的事情:
if (myString)
if (myArray)
,
并且当变量内部有数据时它似乎“返回”真。 至少,这是我的想法。
例如
$testVar = "test";
if ($testVar)
echo $testVar;
else
echo "Empty";
当我断言$testVar = ""
,那么它回声“空”。
我想知道这是否是PHP的一个定义的特性,如果它不为null或空,任何类型都会返回true,就像在其他语言中需要做的一样if($testVar = "")
等等。
此外,如果这确实在所有类型上返回true(如果变量不为空),并且我还想检查变量是否存在,那么:
if (isset($testVar) && $testVar)
可以使用(根据实践)
我已经搜索了问题,但找不到这个确切问题的答案。 总结:
假如它不是空的,任何类型都可以返回一个布尔值吗?
谢谢。
这些类型不会返回true,但它们会转换为true。 PHP是一种弱类型语言,因此它会在需要时自动尝试将变量转换为正确的类型。 在大多数情况下,这意味着非空变量将返回true。
这里的资源会给你更多的信息。 看看“转换为布尔值”部分,具体来说。
http://www.php.net/manual/en/language.types.boolean.php
你不能检查一个字符串是否为空。 考虑这个:
$test = "0";
if ($test)
echo $test;
else
echo "Empty";
上面的代码打印出“Empty”,因为“0”是一个虚假值。 请参阅布尔值,“转换为布尔值”一节。
所以答案是:所有类型都可以转换为布尔值,但结果可能不是你想要的。
变量不会“返回”布尔值,但任何变量都可以评估为true或false。
最好的做法是严格对比,而不是只要if($var)
有关详细的比较信息,请参阅:http://us3.php.net/manual/en/types.comparisons.php
链接地址: http://www.djcxy.com/p/58871.html