2.21.8 creat
create_function()
create_function ( string $args , string $code ) : string获取参数, 函数体;
拼凑一个”function _lambdafunc (参数) { 函数体;} “的字符串;
eval;
通过_lambdafunc在函数表中找到eval后得到的函数体, 找不到就出错;
定义一个函数名:”lambda” . count(anonymous_functions)++;
用新的函数名替换_lambdafunc;
返回新的函数。<?php
$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo "New anonymous function: $newfunc\n";
echo $newfunc(2, M_E) . "\n";
?>
create_function()注入

Last updated
Was this helpful?