【问题标题】:Check if variable isset in object [closed]检查对象中的变量 isset [关闭]
【发布时间】:2013-05-24 09:13:58
【问题描述】:

我有对象:

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

$obj = new Obj();

print_R($obj);

输出:

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

但是

var_dump(isset($obj->foo));

输出bool(false)

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

【问题讨论】:

  • 你的意思是property_exists
  • 你没有用isset()做你想做的事吗?
  • 确实没有设置变量....有什么问题?阅读有关 isset 的文档,那里都有解释
  • @Passerby 是的,我正在寻找。谢谢。

标签: php variables object isset


【解决方案1】:

因为

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

也许您想通过property_existsReflectionClass::hasProperty 进行检查

【讨论】:

  • 谢谢,不知道null
【解决方案2】:

您应该同时使用issetproperty_exists

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

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

【讨论】:

    猜你喜欢
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多