定义PHP中不存在值的最佳方法是什么,或者不足以满足应用程序需求.
$var = NULL
,$var = array()
,$var = FALSE
?
什么是最好的测试方法?
isset($var)
,empty($var)
,if($var != NULL)
,if($var)
?
将变量初始化为它们将会是什么,例如,NULL
如果字符串,array()
如果它们将是数组,则具有一些好处,因为它们将在它们所处的设置中起作用而没有任何意外结果.
例如,foreach($emptyArray)
不会抱怨它不会输出任何东西,而foreach($false)
会抱怨错误的变量类型.
但它有点不必要的麻烦,因为有很多不同的做法基本上是相同的.例如.if(empty($var))
要么if ($var == NULL)
您命名的每个函数都用于不同的目的,应该相应地使用它们:
empty:告诉现有变量是否具有可被视为空的值(数字为0,数组为空数组,等于NULL等).
isset($ var):告诉脚本在变量是赋值的左侧(即$ var = 3;)之前是否遇到一行,或者是其他任何模糊的方法,如 extract, list或 eval.这是查找是否已设置变量的方法.
$ var == NULL:这很棘手,因为0 == NULL.如果你真的想知道变量是否为NULL,你应该使用triple =:$ var === NULL.
if($ var):与$ var == NULL相同.
有用的链接是http://us2.php.net/manual/en/types.comparisons.php.
判断变量是否适合您正在编码的脚本的方法将完全取决于您的代码,因此没有单一的方法来检查它.
最后一条建议:如果您希望变量是一个数组,请不要等待它在某个地方设置.相反,事先初始化它,然后让你的代码运行,也许它会被新数组覆盖:
// Initialize the variable, so we always get an array in this variable without worrying about other code. $var = array(); if(some_weird_condition){ $var = array(1, 2, 3); } // Will work every time. foreach($var as $key => $value){ }