【问题标题】:How to check if the nested property exists in SimpleXML如何检查 SimpleXML 中是否存在嵌套属性
【发布时间】:2013-03-31 15:41:28
【问题描述】:

我想摆脱“尝试获取非对象的属性”警告,但在我的情况下无法找出检查属性是否存在的正确语法。

$this->nonce = $syncbod->Status->Chal->Meta->NextNonce;

试图打电话

property_exists($syncbod, "Status->Chal")

返回总是假的。检查Chal 是否存在的正确方法是什么?

【问题讨论】:

    标签: php


    【解决方案1】:

    你应该看看isset

    请参阅此question,尽管该问题适用于数组,但同样的原则适用于 SimpleXml 属性。问题更多是对嵌套部分的引用,而不是对数组部分的引用

    【讨论】:

    • 这个链接是关于数组的,但在我的例子中是它的类属性
    • 我知道,问题是关于数组,但也适用于 SimpleXml
    • $test = [1 => 'test']; var_dump( isset($test[1]), /* true */ isset($test[1][2]), /*true (见下文)*/ isset($test[1][2][3] ), /*false*/ isset($lol[1]) /*false*/ );第二个让我感到惊讶,直到我意识到可以将字符串作为数组访问,所以 $test[1][2] 返回 "s"
    猜你喜欢
    • 1970-01-01
    • 2019-06-11
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多