一、 is_null(),empty(),isset()三个函数的功能,参数,返回值,源码示例
实例
<?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 */ $val1; $val2 = null; $val3 = 'php'; var_dump(is_null($val1)?true:false); var_dump(is_null($val1)?0:2); var_dump(is_null($val2)); var_dump(is_null($val3)); echo "<hr>"; unset($val3); @var_dump(is_null($val3)); print '<hr color="green">'; /** *二、empty() *什么时候empty()返回true? * 1.空字符串、空数组 * 2.null * 3.0/'0'/false */ $str1 = ''; $str2 = []; $str3 = '0'; $str4 = 0; $str5 = null; $str6 = false; $str7 = 34567; var_dump(empty($str1)); var_dump(empty($str2)); var_dump(empty($str3)); var_dump(empty($str4)); var_dump(empty($str5)); var_dump(empty($str6)); var_dump(empty($str7)); // 注意:在判断用户是否在文本框输入了内容时,要用empty()判断。因为在文本框的value值缺省值为''空字符串 echo "<hr>"; /** * isset()是is_null的反操作 *变量存在且不为null,返回true */ $domain = 'www.php.cn'; $name = null; $job; $value = ""; echo '<hr>'; var_dump(isset($domain)); var_dump(isset($name)); var_dump(isset($job)); var_dump(isset($value)); /** *总结: * 1.变量有两种状态:已声明和未声明 2.已声明的变量有两种状态:已赋值、未赋值 3.变量被赋值有三种:null、空值、非空值 3.1 null is_null() 3.2 空 empty() 3.3 空或非空 isset() 总结:基本原则 1.对为声明的变量只能用isset()进行判断 2.对已声明的,为空用empty(),是否初始化用is_null() */ echo '<hr color="green">'; //第一种场景:变量未声明 var_dump(isset($a)); //不报警 echo '<hr color="green">'; var_dump(is_null($a));//报警 echo '<hr color="green">'; var_dump(empty($a));//报警 echo '<hr color="green">'; $page = isset($_GET['p']) ? $_GET['P']:1; echo $page; //第二种场景:变量已赋值 $a = "www.php.cn"; $b = ''; $c = null; echo '<hr color="red">'; var_dump(isset($a)); //有无 var_dump(empty($b)); //非空 var_dump(is_null($c)); //null判断 //在不确定变量是什么类型时,建议用null初始化
运行实例 »
点击 "运行实例" 按钮查看在线实例
二、 变量的作用域: 全局,局部,静态,实例说明
实例
<?php echo '<h3>4.变量作用域</h2>' ; echo '<hr color = "green">'; /** *作用域: *1.全局:函数之外创建; *2.局部:函数内创建; *3.静态:函数内创建,仅在函数中使用。 */ $siteName = 'php中文网';//全局 /** *函数基本语法:1.声明:function (argments) {#codes...} 2.表达式:$funcName = function (args) {#codes...} 3.调用:按明调用 funcName(args) */ // function hello(){ // $userName = 'peter Zhu';//局部 // return'欢迎来到'.$siteName.',我是:'.$userName; // } // echo hello(); // echo '<hr>'; // function hello (arg1) // { // $userName = 'Peter Zhu'; //局部 // return '欢迎来到'.arg1.',我是:'.$userName; // } // echo hello($siteName); function hello () { // global $siteName; $userName = 'Peter Zhu'; //局部 return '欢迎来到'.$GLOBALS['siteName'].',我是:'.$userName; } echo hello(); echo '<hr>'; //静态变量 function myStatic() { static $num =1; return '第'.$num.'次输出'.$num++.'<br>'; } echo myStatic(); echo myStatic(); echo myStatic(); echo myStatic(); echo myStatic(); /** *超级全局变量:$_SERVER,$_COOKE,$_SESSION,$_GET,$_POST,$_REQUEST,($_REQUEST=$_GET+$_POST+$_COOKE) */ ECHO '<hr color ="blue">'; echo '我的姓名是:'.$_GET['name']; //在函数中引用超全局变量 function sayName(){ return '我的姓名是:'.$_GET['name']; } echo sayName();
运行实例 »
点击 "运行实例" 按钮查看在线实例