is_null() , empty() , isset()
实例
<?php echo '<h3>is_null() , empty() , isset()</h3>'; echo '<hr color="red">'; // 一、is_null()什么时候会返回true? // 1.变量已经声明但未赋值(未初始化),默认就是null // 2.给变量直接初始化为null:$a = null; // 3.unset($var),当前$varw为null(相当于删除变量值) // 总结:不存在/没赋值/值为null 则返回true $var1;//变量已声明,未初始化 $var2 = null;//变量已声明,初始化为null $var3 = 'php';//变量已声明,并初始化为非null $var4 = ''; unset($var3); @var_dump((is_null($var1) ? true : false)); // @var_dump(is_null($var1)); var_dump((is_null($var2) ? true : false)); //在外用unset($var) @var_dump((is_null($var3) ? true : false)); var_dump((is_null($var4) ? true : false)); // 二、empty()【空】 // 什么情况会被认为是enpty() // 1.空字符串,空数组 // 2.null{null就是空,但空不一定是null} // 3.0 / '0' /false $str1 = ''; $str2 = []; $str3 = '0'; $str4 = 0; $str5 = null; $str6 = false; $str7 = 25; 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 // 文本框的默认值就空:vaule='';所以用empty() echo '<hr>'; // isset()是null的相反操作 // 总结:变量存在且不为null,返回true $domain = 'www.tb.com'; $name = null; $job; var_dump(isset($domain )); var_dump(isset($name)); var_dump(isset($job)); // 总结: // 1.变量就二种状态,已声明和未声明 // 2.对于已经声明过的变量也有二种状态:已赋值,未赋值 // 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,输出指定页, 如果没有默认为1 // $page = isset($_GET['p']) ? $_GET['p'] : 1; // echo $page; @var_dump(is_null($a) ? true : false);//报警 var_dump(empty($a) ? true : false); // 第二种场景:变量已经赋值 $a = 'www.tb.com'; $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>变量的作用域</h3>'; echo '<hr color="red">'; // 作用域只有三个: // 1.全局:函数之外创建的 // 2.局部:函数内创建的 // 3.静态 :函数内创建的,仅在函数中使用 $siteName = 'www.qq.com'; //全局的 //全局变量数组 // $GLOBALS['siteName'] // 函数:是脚本中具有特定功能的代码段,可以重复调用 // 基本语法: // 1.声明:function function(arg) { #code } // 2.表达式:$funcName = function(args) { #code } // 调用:按明调用 funcName(args) function good(){ //函数内部是不能直接访问全局变量 $userName = '哈哈是哈哈'; //局部变量 // global $siteName; return '欢迎来到'.$GLOBALS['siteName'].'我叫:'.$userName; // return '欢迎来到'.$siteName.'我叫:'.$userName; } echo good(); echo '<hr color="red">'; //静态变量 function mystatic(){ static $num = 1; return $num.'个月出去旅游'.$num++.'次'.'<br>'; } echo mystatic(); echo mystatic(); echo mystatic(); echo mystatic(); echo mystatic(); echo mystatic(); // 超级全局变量:$_SERVER,$_COOKIE,$_GET,$_POST,$_REQUEST,$_SESSION // $_REQUEST=$_GET+$_POST+$_COOKIE echo '<hr color="yellow">'; // 可以在全局直接引用超全局变量 echo '我叫hello:'.$_GET['name']; echo '<hr color="yellow">'; //在函数中引用超全局变量 function sayName(){ return '我叫hello:'.$_GET['name']; } echo sayName(); //超全局变量是系统自定义的,在用户创建的每一个php文件中,都是会自动生成,不用用户手工去创建。
运行实例 »
点击 "运行实例" 按钮查看在线实例
手写代码: