PHP7 关于变量的基本判断

刚学 PHP ,一些基础还不太牢固,边实践边记录。

 

about NULL

$class_name = null;

语句结束后,$class_name 是空,没有,什么都没有的“空”。用 is_null($class_name) 来判断就是“是”,用 empty 来检测也是“是”,来看下边的过程和结果:

$class_name = null;

echo 'Is Empty: '.empty($class_name).'<br/>';
echo 'Is set: '.isset($class_name)."<br/>";
echo 'Is: '.$class_name."<br/>";
echo "Is null: ".is_null($class_name);

换一下,如果 $class_name = ""; 呢,看下边结果

下边,给 $class_name 赋值看看,先给个数字 1

再给个字符串 “1”

给个数字 0

字符串 “0”

 

贴近现实,给个 “abcdefg”

 

总结一下:

如果想像 C# 那样,判断一个“变量”不要是空,而且不要是空字符串,是有值的,empty() 似乎并不合适,因为它会把 0 或者 "0" 也认为是 empty,似乎 isset 或直接 if( $class_name )更合适一点;

小心!unset()之后,直接 echo $class_name 或者 echo is_null($class_name) 会出错,但 empty($class_name)会运行,并且为 1;

  null "" 1 "1" 0 "0" string
Empty() 1 1     1 1  
isset   1 1 1 1 1 1
Is / Value     1 1 0 0 string
is_null 1            

 

补:

想判断数字?先判断 isset,然后判断 is_numeric,is_numeric 会把字符串、十六进制等“试着”转换成数字,能转成就是“是”,转不了就是“否”。这样可以避免当 0 也是合法数字时,if($变量)会出现的逻辑遗憾

posted @ 2017-09-04 15:07  试试手气  阅读(669)  评论(0编辑  收藏  举报