博客列表 >4.12is_null(),empty()和isset()的区别+作用域

4.12is_null(),empty()和isset()的区别+作用域

十一
十一原创
2018年04月14日 21:17:14621浏览

is_null(),empty()和isset()的区别

实例

<?php 

echo '<h3>is_null(),empty(),isset()</h3>';
echo '<hr color="green">';

echo '<h4>is_null()</h4>';
$val1; //声明没有赋值
$val2 = null;//赋值为空
$val3 = 'php';//正常声明赋值变量
unset($val3);//删除变量val3

@var_dump((is_null($val1)? true : false));
var_dump((is_null($val2)? true : false));
@var_dump((is_null($val3)? true : false));
echo '<hr color="green">';
echo '<h4>empty()</h4>';
//什么情况会被认为是empty()
//1.空字符串,空数组
//2.null
//3.0 / '0' /false
$str1 = '';
$str2 = [];
$str3 = '0';
$str4 = 0;
$str5 = null;
$str6 = false;
$str7 = 120;

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);
echo '<hr color="green">';
echo '<h4>isset()</h4>';
//isset()是null的相反操作
//变量存在且不为null,返回true

$title = 'PHP中文网';
$name = null;
$job;

echo '<hr>';
var_dump(isset($var));//没有定义 返回false
var_dump(isset($title));//正常定义及赋值 返回true
var_dump(isset($name));//正常定义 赋值为空 返回false
var_dump(isset($job));//正常定义 无赋值  返回false

/医院
总结:
1.变量有两二状态:已经声明及未声明
2.对于已经声明过的变量也有二种状态:已赋值 未赋值
3.变量可能会被赋的值有三种:null,空,非空值。
3.1 null is_null()
3.2 空:    empty()
3.3 空或非空isset()

基本原则:
1.对于未声明只能用isset()进行判断
2.对于已声明,为空用empty(),是否初始化了用is_null()

运行实例 »

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

作用域

实例

<?php 
echo '<h3>变量的作用域</h3>';
echo '<hr color="green">';

/医院作用域:
1.全局作用域:函数之外创建的,
2.函数作用域:函数内创建的
3.静态:函数内创建的,仅在函数中使用
*/
$siteName = 'php中文网'; //全局变量

function hello()
{
	$userName = 'yl';//函数变量
	return '欢迎来到'.$GLOBALS['siteName'].',我是:'.$userName;
}
echo hello();
echo '<hr>';
//静态变量
function myStatic()
{
	static $num = 1;//设置为静态变量
	return '第'.$num.'次输出'.$num++.'<br>';
}

echo myStatic();
echo myStatic();
echo myStatic();
echo myStatic();


echo '<hr color="green">';
echo '<h4>超级全局变量</h4>';
//全局直接引用超全局变量
echo '我的姓名是:'.$_GET['name'];//?name=yl
//在函数中引用超全局变量
function sayName()
{
	return '我的姓名是:'.$_GET['name'];
}
echo sayName();

//超全局变量是系统预定义的,在用户创建的每一个PHP文件中,都是会自动创建的。直接引用。

运行实例 »

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


手抄作业:

1.jpg

2.jpg

3.jpg

4.jpg5.jpg

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