PHP函数eval()介绍和使用示例,eval示例_PHP教程
程序员文章站
2022-04-16 08:09:00
...
PHP函数eval()介绍和使用示例,eval示例
什么是eval()?
eval() 函数把字符串按照 PHP 代码来计算。
该字符串必须是合法的 PHP 代码,且必须以分号结尾。
如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。
语法
eval(phpcode)
复制代码 代码如下:
参数 描述
phpcode 必需。规定要计算的 PHP 代码。
例子1
复制代码 代码如下:
$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个随便,值成倍增加
复制代码 代码如下:
for($i=1;$i eval('$a'.$i.'='.($i*$i).';');
}
for($i=1;$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)。 其他的再慢慢考虑吧
上一篇: 如何用正则表达式来表示中文_PHP