1、is_null(),empty(),isset()
实例
<?php echo "<h2>学习is_null(),empty(),isset()</h2>"; echo '<hr color="green">'; /** * is_null() * 1.对应变量不存在/未赋值/值为null时,这个函数返回true */ $val1; $val2 = null; $val3 = 'php'; unset($val3); @var_dump(is_null($val1)?true:false); @var_dump(is_null($val2)?true:false); @var_dump(is_null($val3)?true:false); /** * empty() * 1.空字符串、空数组 * 2.null * 3.0,'0',false */ $str1 = ''; $str2 = []; $str3 = null; $str4 = 0; $str5 = '0'; $str6 = false; echo "<hr>"; var_dump(empty($st1)?true:false); var_dump(empty($st2)?true:false); var_dump(empty($st3)?true:false); var_dump(empty($st4)?true:false); var_dump(empty($st5)?true:false); var_dump(empty($st6)?true:false); /** * isset()是is_null()的相反操作 * 变量存在且不为null,返回true */ $domain = 'www.php.cn'; $name = null; $age; echo "<hr>"; var_dump(isset($domain)); var_dump(isset($name)); var_dump(isset($age)); /** * 总结: * 1. 变量有二种状态: 已声明, 未声明 * 2. 已声明的变量也有二种状态: 已赋值(初始化), 未赋值(未初始化) * 3. 变量可能会被赋值类型: null, 空值, 非空值 * 3.1: null值: is_null() * 3.2: 空值: empty() * 3.3: 空值或非空值: isset() * * 基本使用原则: * 1. 对于未声明的变量只能使用isset()进行判断 * 2. 对于已声明的变量,为空判断用empty(),是否初始化判断用is_null() */ echo "<hr>"; //第一种场景: 变量未声明 //实例:在分页显示数据的时候,如果当前的url中有分页变量page,则输出指定页,否则就默认输出第一页数据 $page = isset($_GET['p']) ? $_GET['p'] : 1; echo $page; // 第二种场景: 变量已声明 $a = 'www.php.cn'; $b = ''; $c; echo "<hr>"; var_dump(isset($a)); var_dump(empty($b)); @var_dump(is_null($c));
运行实例 »
点击 "运行实例" 按钮查看在线实例
2.作用域
实例
<meta charset="utf-8"> <?php echo "<h2>变量的作用域</h2>"; echo "<hr>"; /* * 作用域只有三个: * 1.全局:函数之外创建,仅在当前脚本除函数之外的地方使用; * 2.局部:函数内部创建,仅能在函数中使用,外部不可访问; * 3.静态:函数内部创建,仅在函数中使用,函数执行完成它的值不丢失; */ $siteName = 'php中文网'; function hello() { global $siteName; //引用全局变量 // 也可以直接使用全局变量数组,不必声明引入 $userName = 'lucky'; return "欢迎来到".$GLOBALS['siteName']."我的名字是".$userName; } echo hello(); echo "<hr>"; // 静态 // 1.不为静态变量时,输出全部为1,每次都重新赋值 function myStatic() { $num = 1; return "第".$num."次输出的是:".$num++."<br>"; } echo myStatic(); echo myStatic(); echo myStatic(); echo myStatic(); echo myStatic(); echo "<hr>"; // 1.为静态变量时,输出为累加的值,不重新赋值 function youStatic() { static $num = 1; return "第".$num."次输出的是:".$num++."<br>"; } echo youStatic(); echo youStatic(); echo youStatic(); echo youStatic(); echo youStatic(); /* * 超全局变量:$_SERVER,$_COOKIE,$_SESSION,$_GET,$_POST,$_REQUEST * 1. 属预定义变量,全部是数组,拿来就用,不需要声明; * 2. 跨作用域,在全局和局部(函数内部)都可以直接使用; * 3. 跨作用域不是跨脚本,所谓超全局,包括全局,都是指在当前脚本文件中。 */ echo "<hr>"; //直接全局引用 echo "我的名字是:".$_GET['name']; //也可以在函数中引用 echo "<hr>"; function myName() { return "我的名字是:".$_GET['name']; } echo myName();
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.手写作业: