【问题标题】:Can I create a chain of PHP object references programmatically?我可以通过编程方式创建一个 PHP 对象引用链吗?
【发布时间】:2018-03-12 17:50:27
【问题描述】:

例如,我知道如何获取任意一组键并使用它们来进行这样的对象引用...

$arr = array("A", "B", "C");
foreach($arr as $key):
    echo $obj->{$key} . "\n";
endforeach;
// prints $obj->A, $obj->B and $obj->C

但是如果我想要访问的对象中有多个级别的引用怎么办?是否可以即时添加更多箭头运算符?

$arr = array(array("A", "B"),
             array("C", "D", "E"),
             array("F"));
foreach($arr as $key_arr):
    // ???
endforeach;
// prints $obj->A->B, $obj->C->D->E, $obj->F

【问题讨论】:

标签: php arrays object reference key


【解决方案1】:

您必须遍历名称并在回显之前维护对最后一个对象的引用。

foreach($arr as $key_arr) {
    $ref = $obj ;
    foreach ($key_arr as $item) {
        $ref = $ref->{$item} ; // $obj->A, then $obj->A->B
    }
    echo $ref ;
}
  • $ref = $obj
  • 然后$ref = $ref->A
  • 然后$ref = $ref->B 所以$ref->A->B
  • 等等……
  • 然后回显最后一个引用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多