Представьте себе следующую ситуацию в PHP 5.x, где у меня есть класс.В этом классе используются две переменные:
$this->my_row; # contains a row from a mysqli query, object style
$field['name']; # contains (just) the name of the field in the row i want to retrieve
Предположим, что $ this-> my_row содержит строку с 2 полями (и их значениями):
exam='bio'
grade='A'
Также давайтепредположим:
$field['name']='exam';
Тогда, если я использую этот код:
$value = $this->my_row->$field['name']
$value
будет оцениваться как «био»
Это работало как очарование в течение многих лет,ТЕПЕРЬ я начал использовать PHP 7 (лучше поздно, чем никогда).С тех пор код больше не работает (результат всегда пуст).Чтобы достичь старого результата, мне нужно сделать шаг между:
$tmp_name=$field['name'];
$this->my_row->$tmp_name;
Есть идеи почему?Я предполагаю, что ['имя'] является виновником.может быть, способ, которым PHP 7 оценивает порядок операторов?