当前位置:  开发笔记 > 编程语言 > 正文

检测PHP变量不足:FALSE vs NULL vs unset()vs empty()?

如何解决《检测PHP变量不足:FALSEvsNULLvsunset()vsempty()?》经验,为你挑选了1个好方法。

定义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)


重复: 在PHP中测试变量存在的最佳方法; isset()显然已被打破



1> Seb..:

您命名的每个函数都用于不同的目的,应该相应地使用它们:

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){
}

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有