【问题标题】:PHP setting nested object property with string literalPHP使用字符串文字设置嵌套对象属性
【发布时间】:2014-04-11 21:05:18
【问题描述】:

$person 是一个具有属性 'name' 的对象,它具有属性 'first'。我可以使用单个字符串文字从顶级 $person 访问属性“first”吗?

我试过了,

$prop='name->first';
$person->$prop;

$prop='name->first';
$person->{$prop};

这些都不会评估字符串中的“->”以从“名称”中获取名称属性“第一”。

我可以将字符串分解成一个数组,但我希望不要这样做。

【问题讨论】:

    标签: php string object properties


    【解决方案1】:

    你可以这样做,但eval 几乎总是一个坏主意:

    $prop='name->first';
    $result = eval("\$result = \$person->$prop");
    

    【讨论】:

    • Eval 确实有很多问题/缺点,但它确实可以解决这个问题。
    • 似乎找不到替代方案,因此选中此选项。如果有人有更好的方法,请发表评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    相关资源
    最近更新 更多