Какова цель Array and String Dereferencing реализован в PHP 5.5?


В PHP manual, мы можем видеть на New Features возможность Array and String literal Dereferencing.

Например:

echo 'string'[2]; // r
echo ['stack', 'overflow'][1]; //overflow

, Думая, в случае, если при получении index string array, уже будет работать в других версиях PHP, при условии, что Массив или строку находились в переменной.

$var = 'string';
echo $var[2]; // 'r'

В PHP 5.4, я знаю, что мы теперь имеем прямого доступа к членам array, возвращаемых функцией, и, что очень полезно, кстати (Function array dereferencing).

, Но, в случае с PHP 5.5, я не понимаю, какова цель получить значение с помощью индекса, непосредственно, строку или array, поскольку они не находятся присвоен переменной?

, знаешь, для меня, не имело бы никакого смысла программист использовать первый пример выше.

Существует какой-то цели, более надежный, чем первый пример?

Author: Wallace Maxters, 2014-07-03

1 answers

, образец документации является несчастным (что новинка, не так ли?). Так, как он был помещен, где все постоянно, не есть преимущество. К документации должен помочь понять назначение этого, но они предпочли бюрократическим подходом.

С Помощью

echo ['stack', 'overflow'][$x];

"лучше" (или, по крайней мере, код становится более упрощенный) что делать,

switch ($x) {
    case 0: 
        echo 'stack';
        break;
    case 1:
        echo 'overflow';
        break;
}

См работает ideone. И repl.it. Также положил его на GitHub, чтобы артикул будущей.

Поэтому используется, в основном, для упрощения кода. Представьте, если у вас есть 10, 20, 30 элементов, в этом array, например, switch бы долго.

И в чем-то, чтобы сохранить шаблон. Если другие операции могут быть сделаны непосредственно с литералами, почему не это? Операции должны быть сделаны на вершине ценностей, а не в верхней части переменных. Если случайно значение приходит переменной, возвращение, функции, выражения или константы, не следует делать различие. Если это был высокопоставленный правильно, когда язык был создан, существовал бы этот способ, начиная с версии 1.0. Только тот же PHP, чтобы сделать эту путаницу.

 15
Author: Maniero, 2020-09-07 13:11:09