定义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)
Duplicate:在PHP中测试变量是否存在的最佳方法;isset()显然已损坏
发布于 2009-03-21 17:07:06
您命名的每个函数都有不同的用途,因此应该使用它们:
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){
}发布于 2009-03-21 17:08:54
另外要记住的是,由于php允许计算值为空或空,所以必须使用标识操作符(===,!==,请参阅http://php.net/operators.comparison )。这就是为什么所有这些比较和相等函数都存在的原因,因为您通常必须区分具有细微差异的值。
如果要显式检查NULL,请始终使用$var === NULL。
发布于 2009-03-21 16:05:43
我的投票结果是unset(),因为没有存在的变量在使用时应该生成一个通知。
测试变得更加复杂,因为如果变量“不存在”或null,isset()将是false。(语言设计缺陷,如果你问我的话)
您可以使用array_key_exists()作为$GLOBALS、$_POST等中的可验证性。
对于类属性,有property_exists()。
https://stackoverflow.com/questions/669488
复制相似问题