Не можете передать переменную переменную в функцию в PHP после обновления с 5.5.22 до 5.6.6?

Эта строка кода отлично работала до того, как я обновился, но теперь это не так:

123: $thisRow[] = displayR(${"sR{$i}S1"}, ${"nR{$i}S1P"});

Я получаю эту ошибку:

Undefined variable: sR1S1 in script.php on line 123

Обходной путь — сначала назначить их вручную

$s = ${"sR{$i}S1"};
$n = ${"nR{$i}S1P"};
$thisRow[] = displayR($s, $n);

Есть ли способ заставить его работать в одну строку, как раньше? Кто-нибудь знает, почему это больше не работает?

Я должен добавить, что я пытался использовать

var_dump ($ { "С.Р. {$ I} S1"});

на предыдущей строке, и он определен, и имеет значение, которое я ожидаю.

Я не могу найти упоминания об этом поведении в Google или SO, интересно, это ошибка, а не намерение.

1

Решение

Я считаю, что это ошибка opcache.

Отключение opcache для рассматриваемого файла возобновило ожидаемое поведение.

Я отправил (довольно бесполезный) отчет об ошибке по адресу:

https://bugs.php.net/bug.php?id=69159

Который, видимо, был исправлен и закрыт:

http://git.php.net/?p=php-src.git;a=commitdiff;h=a29b64fc1029b4121e3e9ff20901c35ad600b4da

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]