登录

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

测试了一下:

<?php


class Game {

}

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

?>

# PHP
大家讲道理大家讲道理2146 天前580 次浏览

全部回复(5) 我要回复

  • 怪我咯

    怪我咯2017-04-11 10:09:18

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

    很显然 obj 不是空的~

    测试一下:

    print_r($obj);

    Game Object ( )

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-11 10:09:18

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

    回复
    0
  • 迷茫

    迷茫2017-04-11 10:09:18

    对象都已经被实例化了, 那么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
    
    

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-11 10:09:18

    回复
    0
  • 阿神

    阿神2017-04-11 10:09:18

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

    回复
    0
  • 取消回复发送