$html = '<html><body>$DATA</body></html>';
$DATA = "<h1>Hi</h1>";
eval("\$html = \"$html\";");
echo $html;
Приведенный выше фрагмент кода правильно разрешит переменную $ DATA. В то время как
$html = '<html><body>$DATA</body></html>';
$DATA = "<h1>Hi</h1>";
$html = "$html";
echo $html;
Этот кусок кода не будет. Зачем? В чем разница между этими двумя?
Разве eval("\$html = \"$html\";");
не равно просто $html = "$html";
?
Почему первый работает, а другой нет?
Как в моих приведенных выше примерах; $DATA
есть и должно быть определено после $html
. Это так :). В противном случае у меня даже не было бы вопроса и беспокойства.
Но это ... почему первый работает, а второй нет. А как заставить работать второй? Но прежде всего, почему это на самом деле не работает.