按照这段代码:
$a = 'hello';
$b = 'world';
$str = '$a $b';
echo $str;
eval("\$str=\"$str\";");
echo "<br>";
echo $str;我的输出是
hello world
hello world是php版本的问题么???!!!我的php版本是4.02

解决方案 »

  1.   

    不会的吧,我的也是4.02
    $str = '$a $b'
    echo $str 
    不可能输出 hello world 至少这句我知道,单引号下的值不会以引用到变量中去!你那里是不是有错误!??我不懂得是eval这条语句!!按道理应当解释成 $str = "$str", 解释器会先将$str解释成$a $b,然后再给他加上双引号然后再赋值,而不用eval系统会直接将$str的值作为引用然后直接传给$str,此时并不将$a $b在进行解释,所以会直接输出$a $b.现在只是猜测,和 hahawen的猜测查不多,不过谁有官方一些的解释呢?!!!
    楼上那位老兄,如果感兴趣不妨帮偶也琢磨琢磨谢谢。