Blogger Information
Blog 3
fans 0
comment 0
visits 2151
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
is_null(),empty(),isset()三个函数的功能和变量的作用域——2018年4月17日20时50分
如果人生可以CtrlZ的博客
Original
849 people have browsed it

实例

<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));
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

IMG_20180417_204800_1.jpg.JPGIMG_20180417_204807_1.jpg.JPGIMG_20180417_204811_1.jpg.JPGIMG_20180417_204815_1.jpg.JPGIMG_20180417_204818_1.jpg.JPGIMG_20180417_204823_1.jpg.JPGIMG_20180417_204825_1.jpg.JPGIMG_20180417_204830_1.jpg.JPG

实例

<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 进行声明




Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post