实例
<meta http-equiv="content-type" content="text/html;charset=utf-8" /> <?php /医院 * is_null()返回为true * 1.变量已声明,但未初始化,默认值为null值 * 2.变量赋值null值 * 3.unset()销毁后,变量为null值 */ //is_null对于已声明,但未赋值的变量 $name; @var_dump(is_null($name)); echo '<hr>'; //变量赋值为null $Name = null; var_dump(is_null($Name)); $NaMe = 5; echo '<hr>'; //unset()销毁后,变量为null unset($NaMe); @var_dump(is_null($NaMe)); /医院 * empty()返回true * 1.空字符串 * 2.空数组 * 3.null * 4. 0 '0' false * 总结: * 1. 如果一个变量不存在,它即是空,也是null,用is_null() / empty()都可以判断 * 2. 如果一个变量存在,但它的值对运行结果无影响,则视为空 * 3. null一定是空,但空不一定是null,因为它可能是空值或0或false */ $str1 = ''; $str2 = []; $str3 = null; $str4 = 0; $str5 = '0'; $str6 = false; echo '<hr color="red">'; var_dump(empty($str1)); echo '<hr>'; var_dump(empty($str2)); echo '<hr>'; var_dump(empty($str3)); echo '<hr>'; var_dump(empty($str4)); echo '<hr>'; var_dump(empty($str5)); echo '<hr>'; var_dump(empty($str6)); /医院 * isset()是null的取反操作 * 总结:变量已经存在,并且它的值不为null,返回true,否则为false */ echo '<hr color="green">'; $num1; $num2 = null; $num3 = 10; var_dump(isset($num1)); echo '<hr>'; var_dump(isset($num2)); echo '<hr>'; var_dump(isset($num3)); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<meta http-equiv="content-type" content="text/html;charset=utf-8" /> <?php // 这里变量x为全局变量,y为局部变量 $x = 10; function answer(){ $y = 20; return $y; } echo answer(); echo '<hr>'; echo $x; echo '<hr>'; echo '<hr color="green">'; //静态变量在函数中只能被执行一次 function message(){ static $num = 1; return '第'.$num.'输出'.$num++; } //这里输出会乱码,可以在浏览器上转换 echo message(); echo '<hr>'; //超全局变量不需要使用关键字 global 进行声明 function thing(){ return '这个数字是'.$_GET['num']; } //这里输出会乱码,可以在浏览器上转换 echo thing(); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
总结:1.is_null()变量不存在/没赋值/值为null,则返回true
2.empty()
01. 如果一个变量不存在,它即是空,也是null,用is_null() / empty()都可以判断
02. 如果一个变量存在,但它的值对运行结果无影响,则视为空
03. null一定是空,但空不一定是null,因为它可能是空值或0或false
3.isset()变量已经存在,并且它的值不为null,返回true,否则为false
4.全局:函数之外创建,仅在当前脚本除函数之外的地方使用
5.局部:函数内部创建,仅能在函数中使用,外部不可访问
6.静态:函数内部创建,仅在函数中使用,函数执行完成它的值不丢失
7.函数:是脚本中具有特定功能的代码段,可以重复调用
8.超全局变量:$_SERVER,$_COOKIE,$_SESSION,$_GET,$_POST,$_REQUEST
01. 属预定义变量,全部是数组,拿来就用,不需要声明
02. 跨作用域,在全局和局部(函数内部)都可以直接使用
03.跨作用域不是跨脚本,所谓超全局,包括全局,都是指在当前脚本文件中
04.超全局变量不需要使用关键字 global 进行声明