一、is_null()什么时候返回true?
1.变量已声明但未初始化,默认为null值
2.变量显示赋值为null
3.unset()销毁后,变量为null值
总结:变量不存在/没赋值/值为null,则返回true
二、empty()什么时候返回true?
1、变量已声明,赋值为0/'0'
2、变量已声明,赋值为空/空数组
3、变量已声明,赋值为false
4、变量已声明,但未赋值
总结:
1. 如果一个变量不存在,它即是空,也是null,用is_null() / empty()都可以判断
2. 如果一个变量存在,但它的值对运行结果无影响,则视为空
3. null一定是空,但空不一定是null,因为它可能是空值或0或false
三、siset()什么时候返回true?
1、变量已声明,赋值为非null值
2、变量已声明,但未赋值
3、变量未声明
总结:变量已经存在,并且它的值不为null,返回true,否则为false
实例
<?php //is_null /*什么情况为null? * 1、变量直接赋值为null * 2、变量已经声明,但没有赋值 * 3、变量已经声明且赋值为非null值,但使用了unset() */ $name1= null; $name; $name2='abc'; unset($name2); echo '<h3>is_null()</h3>'; var_dump(is_null($name)?true:false); var_dump(is_null($name1)); var_dump(is_null($name2)); //empty /*什么情况为empty? * 1、变量赋值为空 * 2、变量赋值为0 * 3、变量赋值为'0' * 4、变量赋值为空数组 * 5、变量赋值为false * 6、变量赋值为null */ $user1 = ''; $user2 = '0'; $user3 = 0; $user4 = null; $user5 = []; $user6 = false; echo '<hr>'; echo '<h3>empty()</h3>'; var_dump(empty($user1)); var_dump(empty($user2)); var_dump(empty($user3)); var_dump(empty($user4)); var_dump(empty($user5)); var_dump(empty($user6)); //isset(): /*什么情况下用isset() * 1、变量声明但没有赋值 * 2、变量声明且赋值为null * 3、变量没有声明 */ $pass1=''; $pass2='0'; $pass3=false; $pass4=null; $pass5=[]; $pass6; echo '<hr>'; echo '<h3>isset()</h3>'; var_dump(isset($pass1)); var_dump(isset($pass2)); var_dump(isset($pass3)); var_dump(isset($pass4)); var_dump(isset($pass5)); var_dump(isset($pass6)); var_dump(isset($pass7));
运行实例 »
点击 "运行实例" 按钮查看在线实例