php中eval返回值
前两天在群里面讨论,如何计算字符串表达式的值,如:1*2+3。群里面马上有人给出了方案,使用eval方法。
不错,使用eval方法是最佳选择。
当然下面这样是输出不了值的:
echo eval('1*2+3;');
因为1*2+3是常量表达式,并没有返回值或保存变量。
可以在eval中为变量赋值,像这样:
eval('$a = 1*2+3;'); echo $a;
因为在退出eval后,该函数中变量会保持其值。但这种方法使用了两条语句,所以不可取。
最后的也是最好的方法,在eval函数中直接显示使用return返回值:
echo eval('return 1*2+3;');