繁体   English   中英

如何用未知的参数名称替换函数?

[英]How to replace a function with unknown argument names?

这就是我想做的:

$var = "foo";  
$unknown = "";  
function do($arg1, $arg2) {  
    $arg2 = "bar";
    magic($arg2);
    }  
do($var, $unknown);  
echo $unknown;

这应该返回:bar

我知道如果我定义这样的函数,这将起作用:

function do($arg1, $unknown) {
    global $unknown;
    $unknown = "bar";
}

您可能已经猜到了,$ unknown变量名是未知的。

我需要这个,因为我正在使用apd编写PHP沙箱。 我想用自己的函数替换我不知道的PHP脚本中的exec($ cmd,$ ret)。

因此,如果未知的PHP脚本如下所示:

$foo = "";
exec('whois google.com', $foo);
echo $foo;

我将用自己的模拟相同功能的函数do()替换exec时遇到问题。

您想通过引用传递参数

$var = "foo";  
$unknown = "";  
function foo($arg1, &$arg2) {    // NOTE EXTRA "&"
    $arg2 = "bar";
}  
foo($var, $unknown);  
echo $unknown;

看到它在行动

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM