刚学 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);

PHP7 关于变量的基本判断

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

PHP7 关于变量的基本判断

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

PHP7 关于变量的基本判断

再给个字符串 “1”

PHP7 关于变量的基本判断

给个数字 0

PHP7 关于变量的基本判断

字符串 “0”

 PHP7 关于变量的基本判断

贴近现实,给个 “abcdefg”

 PHP7 关于变量的基本判断

总结一下:

如果想像 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($变量)会出现的逻辑遗憾

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-30
  • 2022-12-23
  • 2021-09-29
  • 2021-08-20
  • 2021-12-10
  • 2021-07-27
猜你喜欢
  • 2022-12-23
  • 2021-07-25
  • 2022-12-23
  • 2021-11-27
  • 2021-12-18
  • 2022-12-23
  • 2021-09-13
相关资源
相似解决方案