你如何只是想通过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第一个参数为空,所以会出错,而且你写的这句的意义是什么,我看不懂。
<?
$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第一个参数为空,所以会出错,而且你写的这句的意义是什么,我看不懂。
(2)eval("return \$value = @str_replace('','',\$$str);");我想这一句不是第一个参数或第二个参数没有值的问题。我想问题出现在第三个参数上。不信你改为这样试试:
eval("\$value = return \$value = str_replace('\$','$',\$$str);"); 或许有可能是我的PHP脚本解析的问题!!但好像也不大可能吧。
eval("return \$value = str_replace('\$','$',\$$str);");