总结:

is_null()可以判断以下三种类型的变量是否为true

  • 变量已声明但未初始化,默认为null

  • 把值把null赋值给变量

  • 用unset()方法,把变量变为null值

empty()可以判断以下三种类型的变量是否为true

  • 空字符串,空数组

  • null

  • 0 / '0' / false

isset()判断变量是否已经存在,如果存在,并且它的值不为null,返回true,否则为false

总的来说:

  • 变量有二种状态: 已声明, 未声明

  • 已声明的变量也有二种状态: 已赋值(初始化), 未赋值(未初始化)

  • 变量可能会被赋值类型: null, 空值, 非空值
     *  null值: is_null()
     *  空值: empty()
     *  空值或非空值: isset()

基本使用原则:

  • 对于未声明的变量只能使用isset()进行判断

  • 对于已声明的变量,为空判断用empty(),是否初始化判断用is_null()

实例

<?php
	header("Content-type: text/html; charset=utf-8"); 
	echo '<h2>is_null(),empty(),isset()的使用与区别</h3>';

	//is_null()可以判断以下三种类型的变量是否为true
	//1. 变量已声明但未初始化,默认为null值
	//2. 把null赋值给变量
	//3. 用nset()方法,把变量变为null值

	$name;
	$age = null;
	$sex = 'man';
	unset($sex);

	@var_dump(is_null($name) ? true : false); //true
	@var_dump(is_null($age) ? true : false);  //true
	@var_dump(is_null($sex) ? true : false);  //true

	//empty()可以判断以下三种类型的变量是否为true
	//1. 空字符串,空数组
	//2. null
	//3. 0 / '0' / false

	$data = '';
	$data2 = null;
	$data3 = [];
	$data4 = 0;
	$data5 = '0';
	$data6 = false;

	echo '<hr>';
	@var_dump(empty($data) ? true : false); //true
	@var_dump(empty($data2) ? true : false); //true
	@var_dump(empty($data3) ? true : false); //true
	@var_dump(empty($data4) ? true : false); //true
	@var_dump(empty($data5) ? true : false); //true
	@var_dump(empty($data6) ? true : false); //true


	//isset()判断变量是否已经存在,如果存在,并且它的值不为null,返回true,否则为false

	$student = '黎明';
	$class = null;
	$teach;

	echo '<hr>';
	var_dump(isset($students));	//判断为定义的变量,返回false
	var_dump(isset($class) ? true : false);
	var_dump(isset($teach) ? true : false);		//false,未赋值并不报错,与is_null不同
	var_dump(isset($student) ? true : false); 	
 ?>

运行实例 »

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

手抄部分:

微信图片_20180415235614.jpg

微信图片_20180415235618.jpg

微信图片_20180415235622.jpg