Эта строка кода отлично работала до того, как я обновился, но теперь это не так:
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, интересно, это ошибка, а не намерение.
Я считаю, что это ошибка opcache.
Отключение opcache для рассматриваемого файла возобновило ожидаемое поведение.
Я отправил (довольно бесполезный) отчет об ошибке по адресу:
https://bugs.php.net/bug.php?id=69159
Который, видимо, был исправлен и закрыт:
http://git.php.net/?p=php-src.git;a=commitdiff;h=a29b64fc1029b4121e3e9ff20901c35ad600b4da
Других решений пока нет …