Языки программирования, такие как PHP, по понятным причинам не будут оценивать строки.Если бы PHP пытался оценить все, что было найдено в строках, у вас были бы огромные дыры в безопасности.
Причина, по которой $str = "$row";
работает, заключается в том, что PHP оценивает "$row"
еще до того, как строка будет назначена.Переменная $row
не находится в $str
, значение имеет.
Обычный вариант использования - сохранение синтаксиса шаблона и замена заполнителей в вашем представлении.Возможные заполнители: %AccountID%
или {{AccountID}}
.Что бы вы ни предпочли, а затем использовать замену строк в тех заполнителях со значениями $row
внутри цикла:
$template = "The account ID is %AccountID%.";
...
while($row = $result2->fetch_assoc()) {
echo str_replace('%AccountID%', $row['AccountID'], $template);
}
Я бы настоятельно рекомендовал вам не полагаться на eval()
здесь, потому что это оставит васоткрыт для опасных инъекций, когда у вас нет полного контроля над входом.