我有对象:
class Obj
{
public $foo;
public $bar;
}
$obj = new Obj();
print_R($obj);
输出:
Obj Object
(
[foo] =>
[bar] =>
)
但是
var_dump(isset($obj->foo));
输出 bool(false)
。
如何检查对象中的变量集?
答案 0 :(得分:4)
由于
$foo = null;
var_dump(isset($foo)); // false
进行检查
答案 1 :(得分:2)
您应该同时使用isset
和property_exists
:
if (property_exists($obj,$foo) && isset($obj->$foo)) {
// use $obj->foo
}
可能存在未设置任何内容的属性,该属性无法按预期方式访问。