is_null() empty() isset()三个函数
代码:
实例
<?php echo '<h3>is_null(),empty(),isset()</h3>'; echo '<hr color="red">'; echo 'is_null(): 不存在/没赋值/值为null时返回true'; echo '<hr>'; echo '已声明,但未初始化: $val1;'; $val1; echo '<br>'; @var_dump((is_null($val1) ? true : false)); echo '<hr>'; echo '已声明,初始化为null: $val2 = null;'; $val2 = null; echo '<br>'; var_dump((is_null($val2) ? true : false)); echo '<hr>'; echo '已声明,并初始化为非null值:$val3 = \'php\';unset($val3);'; $val3 = 'php'; unset($val3); echo '<br>'; @var_dump((is_null($val3) ? true : false)); echo '<hr color="red">'; echo 'empty(): 空字符串、空数组、null、0、\'0\'、false时返回true'; $str1 = ''; //空字符串 $str2 = []; //空数组 $str3 = '0'; //'0' $str4 = 0; //0 $str5 = null; //null $str6 = false; //false echo '<hr>'; var_dump(empty($str1) ? true : false); var_dump(empty($str2) ? true : false); var_dump(empty($str3) ? true : false); var_dump(empty($str4) ? true : false); var_dump(empty($str5) ? true : false); var_dump(empty($str6) ? true : false); echo '<hr color="red">'; echo 'isset(): 变量存在且不为null,返回true'; echo '<hr>'; $sentence = 'hahaha'; $name = null; $job; var_dump(isset($var)); //变量不存在 var_dump(isset($sentence)); //变量存在且不为null var_dump(isset($name)); //变量为null var_dump(isset($job)); //变量未赋值,为null echo '<hr color="red">';
运行实例 »
点击 "运行实例" 按钮查看在线实例
变量作用域:
实例
<?php echo '变量的作用域'; echo '<hr color="red">'; $out = '全局变量'; function diffType() { $in = '局部变量'; global $out; //函数内部不能直接访问全局变量 return '这是'. $out. '这是'. $in; } echo diffType(); echo '<br>'; function num() { $num1 = 1; static $num2 = 1; //静态变量 return '第'.$num1.'次输出'.'局部变量'.$num1++.'第'.$num2.'次输出'.'静态变量'.$num2++.'<br>'; } echo num(); echo num(); echo num(); echo num(); echo num();
运行实例 »
点击 "运行实例" 按钮查看在线实例
手抄代码:
总结:
一、is_null()什么时候会返回true
1.变量已经声明但未赋值(未初始化),默认就是null
2.给变量直接初始化为null:$a = null;
3.unset($var),当前$var为null
即:不存在/没赋值/值为null 时返回true
二、empty()
什么情况会被认为是empty
1.空字符串、空数组
2.null (null是空,但空不一定是null)
3. 0、 '0'、 false
三、isset()
是null的相反操作
即: 变量存在且不为null,返回true
1.变量有两种状态:已声明和未声明
2.对于已经声明过的变量也有两种状态:已赋值,未赋值
3.变量可能会被赋的值有三种:null,空,非空值
3.1 null is_null()
3.2 空:empty()
3.3 空或非空 isset()
基本原则
1. 对于未声明只能用isset()进行判断
2. 对于已声明,为空用empty(),是否初始化了用is_null()