Php 检查对象中是否设置了变量

Php 检查对象中是否设置了变量,php,variables,object,isset,Php,Variables,Object,Isset,我反对: class Obj { public $foo; public $bar; } $obj = new Obj(); print_R($obj); 输出: Obj Object ( [foo] => [bar] => ) 但是 输出bool(假) 如何检查对象中是否设置了变量?因为 $foo = null; var_dump(isset($foo)); // false 也许你想用或检查一下,因为 $foo = null; var

我反对:

class Obj
{
    public $foo;
    public $bar;
}

$obj = new Obj();

print_R($obj);
输出:

Obj Object
(
    [foo] => 
    [bar] => 
)
但是

输出
bool(假)

如何检查对象中是否设置了变量?

因为

$foo = null;
var_dump(isset($foo)); // false
也许你想用或检查一下,因为

$foo = null;
var_dump(isset($foo)); // false

也许您需要使用或检查它您应该同时使用
isset
属性\u exists

if (property_exists($obj,$foo) && isset($obj->$foo)) {
   // use $obj->foo
}

属性可能存在,但未设置任何内容,因此无法按预期访问。

您应该同时使用
isset
property\u exists

if (property_exists($obj,$foo) && isset($obj->$foo)) {
   // use $obj->foo
}

属性可能存在时未设置任何内容,这将无法按预期访问。

您的意思是?您没有使用
isset()
完全完成您想要的操作吗?事实上,变量没有设置。。。。有什么问题吗?阅读有关isset的文档,已经全部解释过了there@Passerby是的,我在找。谢谢。你的意思是说?你不是用
isset()
做了你想做的事吗?实际上变量没有设置。。。。有什么问题吗?阅读有关isset的文档,已经全部解释过了there@Passerby是的,我在找。谢谢。谢谢,我不知道
null
。谢谢,我不知道
null