Подтвердить что ты не робот

PHP: массив для самостоятельной привязки

Есть ли способ ссылки на массив из массива? Это может иметь смысл в формате кода:

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

Я хочу, чтобы для $array['Key2'] выводилось то же самое, что и $array['Key1']. Я могу добавить $array['Key2']=&$array['Key1']; после создания массива, но хотел бы сохранить все это в одном блоке кода, если это возможно.

Я проверил документы по ссылкам, а также некоторые из них предлагают похожие вопросы и поиск "ссылки на php-массив".

4b9b3361

Ответ 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 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

Невозможно сделать это в одном блоке, потому что вы еще не инициализировали переменную. То же самое с переменными класса. Чтобы сделать такую ​​вещь, вам нужно будет создать любую переменную любым способом, а не использовать только ее ссылки, но использовать память, так что еще раз реальный ответ на ваш вопрос - невозможно:)