你如何只是想通过eval改变arr中特定元素的值,用下面就行了
<?
  $arr = array("test1","test2","test3","test4","test5");
  $str = "\$arr[0]='see1';\$arr[3]='see2';\$arr[4]='see4';";
  eval("$str");
  echo $arr[0].",".$arr[1].",".$arr[2].",".$arr[3].",".$arr[4];
?>不知道干吗还要
eval("return \$value = @str_replace('','',\$$str);");
str_replace第一个参数为空,所以会出错,而且你写的这句的意义是什么,我看不懂。

解决方案 »

  1.   

    eval("return \$value = str_repalce('\\\','',\$str);")不明白~~~
      

  2.   

    谢谢 ccterran(iwind)(1)你的这个语句:eval("$str"); 不行的,而且改为:eval("\$str");不会出现表达式错误,但改变不了值。
    (2)eval("return \$value = @str_replace('','',\$$str);");我想这一句不是第一个参数或第二个参数没有值的问题。我想问题出现在第三个参数上。不信你改为这样试试:
    eval("\$value = return \$value = str_replace('\$','$',\$$str);");  或许有可能是我的PHP脚本解析的问题!!但好像也不大可能吧。
      

  3.   

    上面的eval错了应是这样:
    eval("return \$value = str_replace('\$','$',\$$str);");
      

  4.   

    (1)晕,也不是随便改的啊,也要有个理由啊。注意,我那个$str已经给你改了。(2),晕\$就是非空,举个例子没用的啊。你的程序要写得有道理才行,不是想怎么写就怎么写的。
      

  5.   

    谢谢 ccterran(iwind)????奇怪了,散分,竟然没人接。晚上结贴!!