我正在学习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)
给了我错误。
答案 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(非常非常小心)