专栏首页php基础函数php isset()和empty()
原创

php isset()和empty()

(PHP 4, PHP 5, PHP 7)

isset — 检测变量是否已设置并且非 NULL

isset(mixed$var[,mixed$...] ) :bool

如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE

支持多个参数 :如果一次传入多个参数,则自左至右依次检测 ,变量都被设置(不是NULL)返回TRUE,中途遇到没有设置的变量则会停止检测并返回FALSE

eg:

$a = "hello world";
$b = '';
$c = 0;
$d = '0';
$f = NULL;

var_dump(isset($a));    //true
var_dump(isset($a[0])); //true  $a[0] = "h"
var_dump(isset($b));    //true
var_dump(isset($c));    //true
var_dump(isset($d));    //true
var_dump(isset($f));    //false
var_dump(isset($a,$b,$c,$d)); //true
var_dump(isset($a,$b,$c,$d,$f)); //false
unset($a);
var_dump(isset($a));    //false

(PHP 4, PHP 5, PHP 7)

empty — 检查一个变量是否为空

empty(mixed$var) :bool

var存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE.

以下的东西被认为是空的 ,返回TRUE

  • "" (空字符串)
  • 0 (作为整数的0)
  • 0.0 (作为浮点数的0)
  • "0" (作为字符串的0)
  • NULL
  • FALSE
  • array() (一个空数组)
  • $var; (一个声明了,但是没有值的变量)

eg:

$array = [
    "test" => 1,
    "str" => null,
    "child" => [
        "black" => "黑色",
        "white" => "白色",
    ]
];

 var_dump(isset($array['test']));  //true
 var_dump(isset($array['str']));   //false
 var_dump(isset($array['child']['red'])); //false
 var_dump(isset($array['child']['black']));     //true

 var_dump(empty($array['test']));   //false
 var_dump(empty($array['str']));    //true
 var_dump(empty($array['child']['red']));  //true
 var_dump(empty($array['child']['black'])); //false
 
 $test = [[]];
 var_dump(isset($test));  //true
 var_dump(empty($test));  //false

总结:

isset 说明 :变量存在且非null 返回true ;变量不存在返回false ;

empty 说明 :变量存在且不为空 返回false ;变量存在且为空 返回true ;变量不存在 返回true ;

判断一个变量是否已经声明的时候 可以使用 isset 函数

判断一个变量是否已经赋予数据且不为空 可以用 empty 函数

判断 一个变量存在且不为空 先用 isset 函数 再用 empty 函数

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • php函数memory_get_usage获取内存使用情况

    memory_get_usage(real_usage) real_usage如果设置为 TRUE,获取系统分配总的内存尺寸,包括未使用的页。如果未设置或者设置...

    用户7521130
  • empty(),isset(), is_null()区别

    empty 如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,、0、0、NULL、FALSE、array()、var $var、未...

    苦咖啡
  • PHP7 引入的“??” 和“?:”的区别

    empty: 判断一个变量是否为空(null、false、00、0、’0′、』这类,都会返回true)。

    双面人
  • 46.python bytes和string相互转换

    1.python bytes 也称字节序列,并非字符。取值范围 0 <= bytes <= 255,输出的时候最前面会有字符b修饰;string 是python...

    猿说编程[Python和C]
  • Python编程 基础练习(三)

    叶庭云
  • 创建无弹窗子进程

    sofu456
  • 实现多态必须满足什么条件

    3 虚函数机制 virtual mechanism 先看代码: class A { public: virtual void print() { cout...

    程序员小王
  • 软件厂商为转型煞费苦心,山寨SaaS频现世

    Gartner调研结果显示,从2013年至2015年,美国企业的SaaS软件预算将增加78%。Saugatuck Technology预测,到2016年,全球大...

    人称T客
  • 移动SaaS的春天,挡不住的趋势

    1999年,Keith Bennett等人发表了面向服务软件的相关论文,产生了SaaS原始概念。在十多年的发展历程中,几经几落。2000年,SaaS原始概念进入...

    静一
  • 万物可视之智能可视化管理平台

      Tarsier是优锘科技推出的一款可视化+大数据的IT运维管理产品,针对当前业务环境和技术环境下企业IT运维面临的结构复杂、数据碎片、变化常态、机制板结等问...

    要不要吃火锅

扫码关注云+社区

领取腾讯云代金券