PHP:自引用数组

2022-08-30 12:04:33

有没有办法从数组中引用数组密钥?这在代码格式中可能更有意义:

$array=array(
  "Key1"=>array(
    "Value1",
    "Value2"
  ),
  "Key2"=>&$this['Key1']
);

我想要的是输出与 .我可以在创建数组后添加,但如果可能的话,我希望将其全部保存在一个代码块中。$array['Key2']$array['Key1']$array['Key2']=&$array['Key1'];

我已经检查了参考文献上的文档,以及一些建议类似的问题,并搜索“php数组参考”。


答案 1

事实证明,这个问题的答案是肯定的。然而,它不是一个整洁的语法,因为它使用一种子语句,并使当前范围散落着一个额外的引用变量。

请考虑以下代码:

<?php

  $array = array(

    // Creates Key1 and assigns the value to it
    // A copy of the value is also placed in $ref
    // At this stage, it's not a reference
    "Key1"=>($ref = array(
      "Value1",
      "Value2"
    )),

    // Now Key2 is a reference to $ref, but not to Key1
    "Key2"=>&$ref,

    // Now everything is referenced together
    "Key1"=>&$ref

  );

我很惊讶这没有错误,但它确实 - 这是证据。当然,你不会这样做,但你可以...


答案 2

不可能在一个块中实现它,因为您尚未初始化变量。类变量也是如此。要做到这一点,你需要以任何方式创建任何变量,而不是只使用它的链接,但它使用内存,所以再一次,你的问题的真正答案是 - 不可能:)


推荐