博客列表 >变量的检测方法与作用域20180412

变量的检测方法与作用域20180412

jobing的博客
jobing的博客原创
2018年04月15日 22:21:37559浏览

变量的检测方法,主要通过3个函数来检测,分别是is_null(),empty(),isset(),三个函数仅适用于变量判断;变量的作用域有三个全局变量,局部变量,静态变量,还有一个超全局变量,以下是相关代码:

变量的检测代码:

实例

<?php 
echo '<h3>is_null(),empty(),isset()区别</h3>';
echo '<hr color="red" >';

// 三个函数仅适用于变量判断
 // is_null()返回ture的情况
 // 1.变量已声明但未初始化,默认为null值
 // 2.变量显示赋值为null
 // 3.unset()销毁后,变量为null值

$val1;  //已声明,但未赋值
$val2 =  null; //直接用null初始化变量
$val3 = 'php';
@var_dump(is_null($val1) ? true : false); //返回true
var_dump(is_null($val2) ? true : false); //返回true
var_dump(is_null($val3) ? true : false); //返回false
unset($val3);  //彻底销毁变量
@var_dump(is_null($val3) ? true : false); //返回true
@var_dump(is_null($val4) ? true : false); //返回true

echo '<hr color="green">';
// empty()返回true的情况
// 1.空字符串,空数组
// 2.null
// 3.0 / '0' / false
$str1 = '';
$str2 = [];
$str3 = null;
$str4 = '0';
$str5 = 0;
$str6 = false;
$str7 = 'php';
var_dump(empty($str1));//返回true
var_dump(empty($str2));//返回true
var_dump(empty($str3));//返回true
var_dump(empty($str4));//返回true
var_dump(empty($str5));//返回true
var_dump(empty($str6));//返回true
var_dump(empty($str7));//返回false

echo '<hr color="blue">';
// isset()返回true的情况
// 变量已经存在,并且它的值不为null,返回true,否则为false
$a = 'php';
$b = null;
$c;
var_dump(isset($a));//返回true
var_dump(isset($b));//返回false
var_dump(isset($c));//返回false
var_dump(isset($d));//返回false

运行实例 »

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

效果图:

1.png

变量的作用域代码:

实例

<?php 
echo '变量作用域';
echo '<hr color="red" >';

/*
 * 变量的作用域有三个:
 * 1.全局:函数之外创建,仅在当前脚本除函数之外的地方使用;
 * 2.局部:函数内部创建,仅能在函数中使用,外部不可访问;
 * 3.静态:函数内部创建,仅在函数中使用,函数执行完成它的值不丢失;
*/
$siteName = 'jobing的主页'; //全局变量

function hello(){
	global $siteName; //申明全局变量
	$userName = 'jobing'; //局部变量
	return '欢迎来到'.$siteName.',我是'.$userName;//申明之后即可使用
}

echo hello();
echo '<hr>';



function mynumber(){
	static $num = 1;//静态变量,设置之后只赋值一次
	return '我的第'.$num.'个数字是'.$num++.'<br>';
}

echo mynumber();
echo mynumber();
echo mynumber();
echo mynumber();
echo mynumber();
echo mynumber();

echo '<hr>';
//超全局变量
echo '我的姓名是:'.$_GET['name'];

echo '<hr>';

function myName(){
	return '我的姓名是:'.$_GET['name'];
}

echo myName();

运行实例 »

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

效果展示图:

2.png

手写代码:

新文档 2018-04-15_1.jpg新文档 2018-04-15_2.jpg新文档 2018-04-15_3.jpg新文档 2018-04-15_4.jpg新文档 2018-04-15_5.jpg新文档 2018-04-15_6.jpg

总结:

is_null(),empty(),isset()区别:

  1. is_null()返回ture的情况:变量已声明但未初始化,默认为null值;变量显示赋值为null;unset()销毁后,变量为null值

  2. empty()返回true的情况:空字符串,空数组;null;0 / '0' / false

  3. isset()返回true的情况:变量已经存在,并且它的值不为null

变量的作用域有三个:

1.全局变量:函数之外创建,仅在当前脚本除函数之外的地方使用,若要在函数中使用需申明;

2.局部变量:函数内部创建,仅能在函数中使用,外部不可访问;

3.静态变量:函数内部创建,仅在函数中使用,函数执行完成它的值不丢失。

注:还有超全局变量可以在任意位置使用


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议