Correction status:qualified
Teacher's comments:
变量的作用域与检测方法:代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> </head> <body> <?php /** * @Author: Marte * @Date: 2018-04-13 08:44:52 * @Last Modified by: Marte * @Last Modified time: 2018-04-13 10:26:33 */ echo '<h3>is_null(),empty(),isset()的区别</h3>'; // 这三个函数仅仅用于变量判断,不要直接用到字变量上面 // 一、is_null()什么时候返回true? // 1、变量不存在,或者存在已经声明但是未初始化,这时候默认为null; // 2、变量赋值为null; // 3、已经赋值,但是用unset()销毁,这时候为null // 总结:变量不存在 未赋值 是null 采用unset均返回true // 例如: $name; $name1=null; $name2='jack'; unset($name2); @var_dump(is_null($name3) ? true : false);//$name3不存在 @var_dump(is_null($name)? true : false);//$name未赋值 var_dump(is_null($name1));//赋值为null @var_dump(is_null($name2)?true:false);//$name2被销毁 //二、empty()什么时候返回true? //1、空字符串,空数组 //2、变量赋值为null; //3、0/'0'/false //总结: //1、如果变量不存在或是null,可以用is_null()或者用empty()进行判断 //2、如已经赋值为0 [] '0' false ''必用empty //3、null一定时空,但是空不一定是null,如0 false等; $user1=''; $user2=0; $user3='0'; $user4=[]; $user5=null; $user6=false; $user7='jack'; $user8; echo "<hr color='red'>"; @var_dump(is_null($user)?true:false);//此处可以用is_null var_dump(empty($user)?true:false);//此处也可以用empty()进行判断; var_dump(empty($user1)?true:false);//空字符串 var_dump(empty($user2)?true:false);//赋值为零 var_dump(empty($user3)?true:false);//赋值为字符型数字0 var_dump(empty($user4)?true:false);//空数组 var_dump(empty($user5)?true:false);//赋值为null var_dump(empty($user6)?true:false);//赋值为false var_dump(empty($user7)?true:false);//赋值为字符,进行对比 var_dump(empty($user8)?true:false);//未初始化的返回为true //文本框判断是否输入内容,应该用empty()进行判断,因为文本框中内容其实是''空字符串,已经被赋值。 //三、isset()是null的取反操作,想要返回为true,必须不是null,必须被赋值,必须存在,否则为false echo "<hr color='red'>"; $butt=false; $butt1='jack'; $butt2=null; $butt3; var_dump(isset($butt));//false也可以 var_dump(isset($butt0));//不存在的,返回为false var_dump(isset($butt1)); var_dump(isset($butt2));//null返回一定为false var_dump(isset($butt3));//未赋值未初始化的一定返回false echo "<hr color='red'>"; //自己总结: //1、变量有两种状态,已经声明,未声明 //2、已经声明的变量有两种状态,已经初始化被赋值,未初始化未被赋值 //3、变量有很多赋值形式,如null 空值 非空值 //3.1 null 采用is_null() //3.2 空值 empty() //3.3 空值或非空值用isset() //基本使用原则 //1、对于未声明的变量只能使用isset()进行判断,is_null empty()返回为true,无法定性 //2、已经已经声明的,未赋值的应该用is_null,能更深层次的判定性质,为空的采用empty()进行判断 //例如: // 一、变量未声明 // $stu未声明 var_dump(isset($stu)); @var_dump(is_null($stu));//均返回为true,无法判定 var_dump(empty($stu));//均返回为true,无法判定 echo "<hr color='red'>"; //2、变量已经声明 $day=null; $month='12'; $year=''; var_dump(is_null($day)); var_dump(isset($month)); var_dump(empty($year)); ?> </body> </html>
点击 "运行实例" 按钮查看在线实例
手写作业: