> 백엔드 개발 > PHP 문제 > PHP 문자열을 실행 가능한 코드로 변환

PHP 문자열을 실행 가능한 코드로 변환

Guanhui
풀어 주다: 2023-02-28 21:32:01
원래의
4837명이 탐색했습니다.

PHP 문자열을 실행 가능한 코드로 변환

php字符串转成可执行代码

在php中将字符串转为可执行的代码,可以通过使用php中的“eval()”函数来实现。

eval说明与用法

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

eval ( string $code ) : mixed
로그인 후 복사

注:函数eval()语言结构是 非常危险的, 因为它允许执行任意 PHP 代码。 它这样用是很危险的。 如果您仔细的确认过,除了使用此结构以外 别无方法, 请多加注意,不要允许传入任何由用户 提供的、未经完整验证过的数据 。

eval参数

code:

需要被执行的字符串

代码不能包含打开/关闭 PHP tags。比如, 'echo "Hi!";' 不能这样传入: ''。但仍然可以用合适的 PHP tag 来离开、重新进入 PHP 模式。比如 'echo "In PHP mode!"; ?>In HTML 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 = &#39;cup&#39;;
$name = &#39;coffee&#39;;
$str = &#39;This is a $string with my $name in it.&#39;;
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.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿