Blogger Information
Blog 26
fans 0
comment 1
visits 19498
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP课程第17天 PHP函数is_null,empty(),isset()区别
Sam徐民强的博客
Original
617 people have browsed it

PHP函数is_null,empty(),isset()的区别

    empty()是检测变量是否为空值,

    而is_null是检测变量是否存在,

    is_null()仅能检查值为null或没有.

    所以检测某个变量的值是否为空必须用empty.

    isset()是null的取反操作

    变量是否存在,并且值不为null,返回ture,否则返回false

<?php
echo '<h2>3.is_null,empty(),isset()区别</h2>';
//这三个函数仅仅适用于变量的判断。
echo '<hr>';

/*
1.is_null()什么时候返回true
  a.变量已声明但未初始化,默认为null值
  b.变量显示赋值为null
  c.unset()销毁后,变量为null值
 总结:变量不存在/没有赋值/值为null,则返回true
 */

$val1;  //已经声明未赋值
$val2=null; //赋值为null 初始变量
$val3='php 课程1';

echo $val3;
echo '<hr>';
unset($val3);//销毁变量
//echo $val3;//再次查询原始变量,则检测不存在

var_dump(is_null($val1) ? true : false); //true
echo '<hr>';
var_dump(is_null($val2) ? true : false); //true
echo '<hr>';
var_dump(is_null($val3) ? true : false); //true

echo '<hr>';

/*
2.empty(var)什么时候返回true
	a.空字符串,空数组
	b.null
	c. 0 ; '0' ; false
 总结:
	 1. 如果一个变量不存在,它即是空,也是null,用is_null() / empty()都可以判断
	 2. 如果一个变量存在,但它的值对运行结果无影响,则视为空
	 3. null一定是空,但空不一定是null,因为它可能是空值或0或
*/

$str1 = '';
$str2 = [];
$str3 = '0';
$str4 = 0;
$str5 = null;
$str6 = false;
$str7 = 'php 课程 2';

var_dump(empty($str1) ? true : false);//空字符串
var_dump(empty($str2) ? true : false);//空数组
var_dump(empty($str3) ? true : false);//字符类型数组0
var_dump(empty($str4) ? true : false);//数字0
var_dump(empty($str5) ? true : false);//null值
var_dump(empty($str6) ? true : false);//布尔类型false
var_dump(empty($str7) ? true : false);//有值又不为空  ,此处返回false

/*
综上所述,总结如下:
empty()是检测变量是否为空值,
而is_null是检测变量是否存在,
is_null()仅能检查值为null或没有.
所以检测某个变量的值是否为空必须用empty.
 */


//--------------------------------------
//
//
//isset()是null的取反操作
//变量是否存在,并且值不为null,返回ture,否则返回false

$domain='http://www.php.cn';
$name=null;
$sex;

echo '<hr>';

var_dump(isset($var));
var_dump(isset($domain) ? true : false);
var_dump(isset($name) ? true : false);
var_dump(isset($sex) ? true : false); //false,未赋值并不报错,与is_null不同


echo '<hr color="red">';

//第一种场景: 变量未声明
var_dump(isset($a) ? true : false);//不报错,返回false表示未声明
$name = isset($_GET['page']) ? $_GET['page'] : 1;
echo $name;

var_dump(is_null($a) ? true : false);//is_null会给出警告,并自动执行 $a = null, 所以会返回tru

//因为未声明的变量会自动初始化为null,而对于值为null的变量,empty()会认为是空,所以返回true
var_dump(empty($a) ? true : false);

//第二种场景: 变量未声明
//

$a='xumq.cn';
$b='';
$c=null;

echo '<hr color="red">';

var_dump(isset($a));//有无判断
var_dump(empty($b));//非空判断
var_dump(is_null($c));//null


Correction status:Uncorrected

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