关于PHP中eval函数的返回值

关于eval 的概念就是把字符串作为PHP代码执行。但是关于其返回值,有时候容易出错。
如下面定义一个函数

function get_func_type(){
    return array(1=>'字符串处理','2'=>'数组处理');
}
你能正确说出例1,例2,例3的执行结果吗?

例1

$p=eval('get_func_type();');
trace($p);

例2

$p=eval('return get_func_type();');
trace($p);

例3

eval('$p=get_func_type();');
trace($p);

例1返回null,

例2返回如下

Array
(
    [1] => 字符串处理
    [2] => 数组处理
)

例3返回如下

“`
Array
(
[1] => 字符串处理
[2] => 数组处理
)
关于eval函数的返回值,手册上是如下定义的
关于PHP中eval函数的返回值_第1张图片
这句话可能说的不是很清楚。简单点就是如果,执行语句中有return,且return不在函数里面,则返回Return后面的值,否则返回null。

你可能感兴趣的:(PHP,PHP开发)