<?php
$a = '$b=2a';
eval("$a;");
echo $b;
?>这样,提示出错。
<?php
$a = '$b=a2';
eval("$a;");
echo $b;==》a2
?>这样正确请问是为什么?

解决方案 »

  1.   

    $b=a2;
    此时 a2 为标量,而 2a 不是标量。字符串类型的标量要符合变量命名规则
      

  2.   

    都是错的
    eval("$a;"); 
    这句就错了,$需要在eval中转义
    eval("\$a;");
    而你最后echo $b; 是echo不出来的,因为$b=2a是字符串,你赋给$a的
    不信你改成这样
    $a = '$b=2a'; 
    eval("echo \$a");
    运行结果肯定是$b=2a结果不会是2a,表达式不会赋给变量然后执行