Correction status:qualified
Teacher's comments:
变量的检测方法,主要通过3个函数来检测,分别是is_null(),empty(),isset(),三个函数仅适用于变量判断;变量的作用域有三个全局变量,局部变量,静态变量,还有一个超全局变量,以下是相关代码:
变量的检测代码:
<?php echo '<h3>is_null(),empty(),isset()区别</h3>'; echo '<hr color="red" >'; // 三个函数仅适用于变量判断 // is_null()返回ture的情况 // 1.变量已声明但未初始化,默认为null值 // 2.变量显示赋值为null // 3.unset()销毁后,变量为null值 $val1; //已声明,但未赋值 $val2 = null; //直接用null初始化变量 $val3 = 'php'; @var_dump(is_null($val1) ? true : false); //返回true var_dump(is_null($val2) ? true : false); //返回true var_dump(is_null($val3) ? true : false); //返回false unset($val3); //彻底销毁变量 @var_dump(is_null($val3) ? true : false); //返回true @var_dump(is_null($val4) ? true : false); //返回true echo '<hr color="green">'; // empty()返回true的情况 // 1.空字符串,空数组 // 2.null // 3.0 / '0' / false $str1 = ''; $str2 = []; $str3 = null; $str4 = '0'; $str5 = 0; $str6 = false; $str7 = 'php'; 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 echo '<hr color="blue">'; // isset()返回true的情况 // 变量已经存在,并且它的值不为null,返回true,否则为false $a = 'php'; $b = null; $c; var_dump(isset($a));//返回true var_dump(isset($b));//返回false var_dump(isset($c));//返回false var_dump(isset($d));//返回false
点击 "运行实例" 按钮查看在线实例
效果图:
变量的作用域代码:
<?php echo '变量作用域'; echo '<hr color="red" >'; /* * 变量的作用域有三个: * 1.全局:函数之外创建,仅在当前脚本除函数之外的地方使用; * 2.局部:函数内部创建,仅能在函数中使用,外部不可访问; * 3.静态:函数内部创建,仅在函数中使用,函数执行完成它的值不丢失; */ $siteName = 'jobing的主页'; //全局变量 function hello(){ global $siteName; //申明全局变量 $userName = 'jobing'; //局部变量 return '欢迎来到'.$siteName.',我是'.$userName;//申明之后即可使用 } echo hello(); echo '<hr>'; function mynumber(){ static $num = 1;//静态变量,设置之后只赋值一次 return '我的第'.$num.'个数字是'.$num++.'<br>'; } echo mynumber(); echo mynumber(); echo mynumber(); echo mynumber(); echo mynumber(); echo mynumber(); echo '<hr>'; //超全局变量 echo '我的姓名是:'.$_GET['name']; echo '<hr>'; function myName(){ return '我的姓名是:'.$_GET['name']; } echo myName();
点击 "运行实例" 按钮查看在线实例
效果展示图:
手写代码:
总结:
is_null(),empty(),isset()区别:
is_null()返回ture的情况:变量已声明但未初始化,默认为null值;变量显示赋值为null;unset()销毁后,变量为null值
empty()返回true的情况:空字符串,空数组;null;0 / '0' / false
isset()返回true的情况:变量已经存在,并且它的值不为null
变量的作用域有三个:
1.全局变量:函数之外创建,仅在当前脚本除函数之外的地方使用,若要在函数中使用需申明;
2.局部变量:函数内部创建,仅能在函数中使用,外部不可访问;
3.静态变量:函数内部创建,仅在函数中使用,函数执行完成它的值不丢失。
注:还有超全局变量可以在任意位置使用