时间:2021-07-01 10:21:17 帮助过:8人阅读
什么是eval()?
eval() 函数把字符串按照 PHP 代码来计算。
该字符串必须是合法的 PHP 代码,且必须以分号结尾。
如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。
语法
eval(phpcode)
代码如下:
参数 描述
phpcode 必需。规定要计算的 PHP 代码。
例子1
代码如下:
<?php
$string = "beautiful";
$time = "winter";
$str = 'This is a $string $time morning!';
echo $str. "
";
eval("\$str = \"$str\";");
echo $str;
?>
输出:
This is a $string $time morning!
This is a beautiful winter morning!
例子2
我们使用for循环创建n个随便,值成倍增加
代码如下:
<?php
for($i=1;$i<=10;$i++){
eval('$a'.$i.'='.($i*$i).';');
}
for($i=1;$i<=10;$i++){
eval('echo $a'.$i.'.\'
\' ;');
}
echo '
';
echo $a1 + $a10;
输出:
代码如下:
1
4
9
16
25
36
49
64
81
100
101
eval() 括号中必须是字符串
假如你写 $a=1; eval("echo (\$a+\$b);"); 运行结果是 1
如果是 $a=1; eval("echo ($a+$b);"); 则报错
这说明里面最好是严格的字符串 并且是完整的PHP语句
$a=1; eval("echo \$a;");
$a=1; eval("echo $a;");
上面结果一样 以为第一个eval 是执行了 echo $a; 而第二句是执行 echo 1;
$f ='$';
$f.$a.$this->i
这是什么写法,显然应该就不是你要的效果,这相当于字符串连接了。大概你的意思是要这样的,$($a.$this->i)。 其他的再慢慢考虑吧
http://www.bkjia.com/PHPjc/866677.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/866677.htmlTechArticlePHP函数eval()介绍和使用示例,eval示例 什么是eval() eval() 函数把字符串按照 PHP 代码来计算。 该字符串必须是合法的 PHP 代码,且必须以分号...