首页 > php empty不是没有属性的对象会返回true吗?

php empty不是没有属性的对象会返回true吗?

测试了一下:

<?php


class Game {

}

$obj = new Game();
if(empty($obj)) {
    echo '空的';
} else {
    echo "不空";
}

?>


参考PHP文档:empty — 检查一个变量是否为空

很显然 obj 不是空的~

测试一下:

print_r($obj);

Game Object ( )



对象都已经被实例化了, 那么empty肯定是不会空的, 我理解的empty


empty(''); //true
empty(0); //true
empty('0'); //true
empty(NULL); //true
empty([]); //true
empty(array(array())); //false

$a;//只定义不赋值
empty($a);//true

class AA {}
$aa = new AA();
empty($aa);// false, 对象真实存在, 不为空

class BB {
    public $name;
}

$bb = new BB();
empty($bb->name); //true


这个很明显不为空啊, empty 一般是判断变量用的, 其实你这判断一个对象 也没实际作用,
你new一个空对象, 跟赋值一个空变量或者空数组是不一样的,
或者你可以打印出来看下, object(Game)[1]
这是打印出来的,


空还是非空是有定义的,你别猜啊……

【热门文章】
【热门文章】