Correction status:Uncorrected
Teacher's comments:
代码部分:
<?php echo '<h1>is_null(),empty(),isset()这三个函数的区别</h1>'; echo '<hr color="red">'; // 一、is_null()什么情况下返回值为true??? $var1; //-------------------1.声明一个变量,但未赋值,默认值为null,@符号可以屏蔽警告提示 $var2 = null;//-------------2.声明一个变量,赋值为null $var3 = '我是PHP大神'; unset($var3);//-------------3.使用unset()删除变量 @var_dump(is_null($var1));//true var_dump(is_null($var2));//true @var_dump(is_null($var3));//true // 二、empty()什么时候返回true??? echo '<hr color="green">'; $str1 = '';//------1.空字符串 $str2 = [];//------2.空数组 $str3 = '0';//-----3.字符串0 $str4 = 0;//-------4.数字0 $str5 = null;//----5.null值 $str6 = false;//---6.布尔false值 $str7 = '张鑫';//--7.非空值 var_dump(empty($str1));//true var_dump(empty($str2));//true var_dump(empty($str3));//true var_dump(empty($str4));//true var_dump(empty($str5));//true var_dump(empty($str6));//true var_dump(empty($str7));//false(有值且不为空,返回false) echo '<hr color="lightblue">'; // 三、isset()什么时候返回true??? // 总结:isset()是is_null()的取反操作,变量已经存在,并且它的值不为null返回true,否则返回false $name = '张鑫'; $sex = null; $job; var_dump(isset($name));//true var_dump(isset($sex));//false var_dump(isset($job));//false(未被赋值不报警,与is_null不同) /*总结: 1.变量有两种类型:已声明和未声明 2.已声明的变量也有两种状态:已赋值(已初始化)和未赋值(未初始化) 3.变量可能被赋的值:null,空值,非空值 3.1: null值: is_null() 3.2: 空值: empty() 3.3: 空值或非空值: isset() 基本使用原则: 1. 对于未声明的变量只能使用isset()进行判断 2. 对于已声明的变量,为空判断用empty(),是否初始化判断用is_null() */ //第一种场景: 变量未声明 //$a未声明 var_dump(isset($a) ? true : false); //不报错,返回false表示未声明 //实例:在分页显示数据的时候,如果当前的url中有分页变量page,则输出指定页,否则就默认输出第一页数据 $name = isset($_GET['page']) ? $_GET['page'] : 1; //is_null会给出警告,并自动执行 $a = null, 所以会返回true @var_dump(is_null($a) ? true : false); //因为未声明的变量会自动初始化为null,而对于值为null的变量,empty()会认为是空,所以返回true var_dump(empty($a) ? true : false); // 第二种场景: 变量已声明 $a = 'www.php.cn'; $b = ''; $c = null; echo '<hr color="blue">'; var_dump(isset($a)); //有无判断 var_dump(empty($b)); //非空判断 var_dump(is_null($c)); //null //初始化变量的原则: //1.在预知变量类型的情况下 $num = 0; //数值 $userName = ''; //字符串 $isPass = false; //布尔 $books = []; //数组 $student = null; //对象 //2.不确定变量最终会保存什么值,建议用null进行初始化
点击 "运行实例" 按钮查看在线实例
手抄部分: