php eval条件理解

时间:2015-01-25 15:37:21

标签: php

我正在学习PHP。我看到一个代码包括" eval"下面:

<?php
$name = 'cup';
$string = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";

eval("\$cup = \"$str\";");           
echo $cup. "\n";
?>

我的问题是"\$cup = \"$str\";"。为什么我必须使用\";来运行上述代码?简单地eval($cup = $str)给了我错误。

1 个答案:

答案 0 :(得分:1)

简单地eval($cup = $str)是wrog,eval需要一个字符串,例如;

eval('$cup = $str;'); // this work

现在,如果使用双引号,例如

eval("\$cup = \"$str\";");     
双引号字符串中的

将评估字符串中的变量。例如:

$cup = 'hello';
$str = 'world';
eval("$cup = \"$str\";"); // eval("hello = \"world\";");   

\是转义字符

$cup = 'hello';
$str = 'world';
eval("\$cup = \"$str\";"); // eval("$cup = \"world\";"); 

建议阅读:PHP Strings

旁注:PHP eval is evil(非常非常小心)