php字符串转成可执行代码-PHP问题

资源魔 36 0

php字符串转成可执行代码

正在php中将字符串转为可执行的代码,能够经过应用php中的“eval()”函数来完成。

eval阐明与用法

eval — 把字符串作为PHP代码执行

eval ( string $code ) : mixed

注:函数eval()言语构造是 十分风险的, 由于它容许执行恣意 PHP 代码。 它这样用是很风险的。 假如您细心确实认过,除了了应用此构造之外 别有方法, 请多加留意,没有要容许传入任何由用户 提供的、未经完好验证过的数据 。

eval参数

code:

需求被执行的字符串

代码不克不及蕴含关上/封闭 PHP tags。比方, 'echo "Hi!";' 不克不及这样传入: '<?php echo "Hi!"; ?>'。但依然能够用合适的 PHP tag 来分开、从新进入 PHP 模式。比方 'echo "In PHP mode!"; ?>In HTML mode!<?php echo "Back in PHP mode!";'。

除了此以外,传入的必需是无效的 PHP 代码。一切的语句必需以分号末端。比方 'echo "Hi!"' 会招致一个 parse error,而 'echo "Hi!";' 则会失常运转。

return 语句会立刻停止以后字符串的执行。

代码执行的作用域是挪用 eval() 处的作用域。因而,eval() 里任何的变量界说、修正,城市正在函数完结后被保存。

eval前往值

eval() 前往 NULL,除了非正在执行的代码中 return 了一个值,函数前往通报给 return 的值。 PHP 7 开端,执行的代码里假如有一个 parse error,eval() 会抛出 ParseError 异样。正在 PHP 7 以前, 假如正在执行的代码中有 parse error,eval() 前往 FALSE,之后的代码将失常执行。无奈应用 set_error_handler() 捕捉 eval() 中的解析谬误。

eval应用示例

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>

以上例程会输入:

This is a $string with my $name in it.
This is a cup with my coffee in it.

以上就是php字符串转成可执行代码的具体内容,更多请存眷资源魔其它相干文章!

标签: php php教程 字符串 php故障解决 php使用问题

抱歉,评论功能暂时关闭!