博客列表 >理解is_null(),empty(),isset() ——2018年4月12日

理解is_null(),empty(),isset() ——2018年4月12日

JackBlog
JackBlog原创
2018年04月13日 11:43:41617浏览

 一、is_null()什么时候返回true?

 1.变量已声明但未初始化,默认为null值

 2.变量显示赋值为null

 3.unset()销毁后,变量为null值

 总结:变量不存在/没赋值/值为null,则返回true 


 二、empty()什么时候返回true?

1、变量已声明,赋值为0/'0'

2、变量已声明,赋值为空/空数组

3、变量已声明,赋值为false

4、变量已声明,但未赋值

  总结:

  1. 如果一个变量不存在,它即是空,也是null,用is_null() / empty()都可以判断

  2. 如果一个变量存在,但它的值对运行结果无影响,则视为空

  3. null一定是空,但空不一定是null,因为它可能是空值或0或false

三、siset()什么时候返回true?

1、变量已声明,赋值为非null值

2、变量已声明,但未赋值

3、变量未声明

总结:变量已经存在,并且它的值不为null,返回true,否则为false


实例

<?php

//is_null
/*什么情况为null?
 * 1、变量直接赋值为null
 * 2、变量已经声明,但没有赋值
 * 3、变量已经声明且赋值为非null值,但使用了unset()
 */
$name1= null;
$name;
$name2='abc';
unset($name2);

echo '<h3>is_null()</h3>';
var_dump(is_null($name)?true:false);
var_dump(is_null($name1));
var_dump(is_null($name2));

//empty
/*什么情况为empty?
 * 1、变量赋值为空
 * 2、变量赋值为0
 * 3、变量赋值为'0'
 * 4、变量赋值为空数组
 * 5、变量赋值为false
 * 6、变量赋值为null
 */
$user1 = '';
$user2 = '0';
$user3 = 0;
$user4 = null;
$user5 = [];
$user6 = false;

echo '<hr>';
echo '<h3>empty()</h3>';
var_dump(empty($user1));
var_dump(empty($user2));
var_dump(empty($user3));
var_dump(empty($user4));
var_dump(empty($user5));
var_dump(empty($user6));

//isset():
/*什么情况下用isset()
 * 1、变量声明但没有赋值
 * 2、变量声明且赋值为null
 * 3、变量没有声明
 */
$pass1='';
$pass2='0';
$pass3=false;
$pass4=null;
$pass5=[];
$pass6;

echo '<hr>';
echo '<h3>isset()</h3>';
var_dump(isset($pass1));
var_dump(isset($pass2));
var_dump(isset($pass3));
var_dump(isset($pass4));
var_dump(isset($pass5));
var_dump(isset($pass6));
var_dump(isset($pass7));

运行实例 »

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



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