Оцените строку как код PHP без использования eval
Видя, как следует избегать eval, как вы оцениваете строку как код PHP без использования eval? Например, рассмотрим этот код:
<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
$str = "\"$str\""; // Now I have a string with double quotes around it.
// how to get the contents of $str evaluated without using eval()
?>
Я могу получить желаемый результат, используя Eval, как это так - eval("echo $str;");
Но eval - это именно то, чего я хочу избежать.
Вы можете рассматривать это как вопрос удаления двойных кавычек. Но дело не в этом. Как указывает @AmalMurali, здесь я спрашиваю how to get the contents of $str evaluated without using eval()
3 ответа
Вы можете разместить свой код так:
$string = 'cup';
$name = 'coffee';
$str = 'This is a ' . $string . ' with my ' . $name . ' in it.';
Или, возможно, так, используя sprintf
это мой личный любимый метод обработки таких случаев:
$string = 'cup';
$name = 'coffee';
$str = sprintf('This is a %s with my %s in it.', $string, $name);
Существуют различные варианты, основанные на личном стиле и предпочтениях.
Почему вы добавляете двойные кавычки, а затем удаляете их? Для включения простой строковой переменной вы просто используете двойные кавычки, такие как
$string = 'cup';
$name = 'coffee';
$str = "This is a $string with my $name in it.";
echo $str;
Здесь вы действительно хотите использовать двойные кавычки для $str, чтобы можно было заменить переменную.
См. Также документы: http://www.php.net/manual/it/language.types.string.php