Correction status:Uncorrected
Teacher's comments:
<?php echo '<h3>3.is_null(),empty(),isset()</h3>'; echo '<hr color="green">'; /医院 * 一、is_null()什么时候会返回true? * 1.变量已经声明但未赋值(未初始化),默认就是Null * 2.给变量直接初始化为null:$a = null; * 3.unset($var),当前$var 为null * 总结:不存在/没赋值/值为null 则返回true * */ $vall; //已声明,但未初始化 $val2 = null; //已声明,初始化为null $var3 = 'php'; //已声明,并初始化为非null值 unset($val3); @var_dump((is_null($val1) ? true : false)); var_dump((is_null($val2) ? true : false)); @var_dump((is_null($val3) ? true : false)); /医院 *一、empty() *什么情况会被认为是empty() *1.空字符串,空数组 *2.null *3.0 / '0' / false * */ $str1 = ''; $str2 = []; $str3 = '0'; $str4 = 0; $str5 = null; $str6 = false; $str7 = 120; 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); var_dump(empty($str7) ? true : false); /医院 * 思考:判断用户是否在文本框输入了内容:is_null()还是empty()? * 答案:empty(),不能用is_null() * */ /医院 *isset()是Null的相反操作 *总结:变量存在且不为null,返回true * * */ $domain = 'www.php.cn'; $name = null; $job; echo '<hr>'; var_dump(isset($var)); var_dump(isset($domain)); var_dump(isset($name)); var_dump(isset($job)); /医院 * 总结: * 1.变量有两种状态:已声明和未声明 * 2.对已经声明过的变量也有二种状态:已赋值,未赋值1 * 3.变量可能会被赋的值有三种:null, 空, 非空值 * 3.1 null is_null() * 3.2 空: empty() * 3.3空或非空 isset() * * 总结原则: * 1.对于未声明只能用isset()进行判断 * 2.对于已声明,为空用empty(),是否初始化了用is_null() * */ echo '<hr color="red">'; //的一种场景:变量未声明 //$a未声明 var_dump(isset($a) ? true : false); //不报警 //实例:分页显示数据,如果当前的url地之中有分页变量P,输出指定页,如果没有默认为第一页 $page = isset($_GET['p']) ? $_GET['p']:1; echo $page; @var_dump(is_null($a) ? true : false); //报警 var_dump(empty($a) ? true : false); //报警 //第二种场景:变量已赋值 $a = 'www.php.cn'; $b = ''; $c; echo '<hr color="red“>'; var_dump(isset($a)); //有无 var_dump(empty($b)); //非空 @var_dump(is_null($c)); //null //如果不确定变量最终是什么类型的时候,建议用NULL进行初始化
点击 "运行实例" 按钮查看在线实例