PHP eval $ a = "$ a"?

Я просматривал код для работы и наткнулся на эту строку:

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

Не используйте его.