Я просматривал код для работы и наткнулся на эту строку:
eval("\$element = \"$element\";");
Я очень смущен, почему любой разработчик PHP написал бы эту строку. Какая цель это, помимо установки переменной для себя?
К счастью, функция, в которой находится эта строка, никогда не называется.
<?php $string = 'cup'; $name = 'coffee'; $str = 'This is a $string with my $name in it.'; echo $str. "\n"; eval("\$str = \"$str\";"); echo $str. "\n"; ?>
Вышеприведенный пример выводит:
This is a $string with my $name in it. This is a cup with my coffee in it.
http://php.net/manual/en/function.eval.php
Я просто ctl + c ctrl + v 🙂
Он преобразует значение переменной в строку, но я бы не рекомендовал ее использовать.
strval()
этого используйте функцию strval()
. Посмотрите руководство .
Это присваивает преобразованное строкой содержимое переменной $element
переменной с именем $element
. Другой способ сделать это – использовать strval
или в некоторых случаях print_r($x, true)
На самом деле это не делает ничего, кроме преобразования значения в строку или может служить бедной альтернативой sprintf
. Но если переменная содержит двойные кавычки, это вызовет некоторые проблемы. Вы действительно не хотели бы анализировать такой код:
$element = 'foo"bar';
Не говоря уже о еще более опасном коде. Кажется, это место для «инъекции php»: D
Не используйте его.