Эта строка кода работает отлично, прежде чем я модернизировал, теперь он не делает:Не удается передать переменную переменную в функцию в 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(${"sR{$i}S1"});в предыдущей строке, и он определен и имеет значение, которое я ожидаю.
Я не могу найти упоминания об этом поведении в google или SO, интересно, является ли это скорее ошибкой, чем предполагаемой.
Ясно затягивая на неаккуратных практики кодирования является ошибка : если переменная не определена, когда вы передаете ее функции, что должна делать эта функция? –
[уведомление об изменении неопределенности php и неопределенное уведомление об индексе] (http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) –
Переменные ARE определены @Mark. Я могу var_dump их в предыдущей строке, и они там, как inteded. var_dump ($ {"sR {$ i} S1"}) выводит значение, как ожидалось. – Codemonkey