提取功能的php增加了变量的局部范围的调功能。我们怎么可以写我们自己的php功能提取这么一样吗?

有帮助吗?

解决方案

我不认为你可以做,在纯PHP:函数没有访问调用者的变量

这看起来像诸如此类的事情,你需要写一个C扩展开发 - 你必须在PHP变量有内部的更多控制。

(我真的不明白为什么你正在试图做的是:为什么不直接使用现有的 extract 功能?)

其他提示

PHPJS 是一个javascript库,其中包含的职能的那些php,这是它的 提取物 功能可以得到一个想法。说了这番话之后,我不知道为什么是你寻找自己的职能时php已经提供了一个。

确定,如果是只为它的乐趣它是可能的:

<?php
$data=array('a' => 1, 'b' => 2);

foreach ($data as $name => $value) {
    ${$name} = $value;
}

echo $a;
?>

但是,一些问题 - 像$数据,$ name和$值,你不能在一个函数把它包冲突。但是可能的。

是可能的是,

为什么我这样做是因为我需要提取功能更多的东西,它应该修剪得值的理由

function extractArray($ar) {
        if(count($ar)>=1) {
            foreach($ar as $k=>$v) {
                $GLOBALS[$k] = (is_array($v)?$v:trim($v));
            }
        }
}

我只是考绩我的$ _GET,$ _ POST和其他阵列这样的 对于如 $ _GET [ '用户名'] = 'justnajm'; extractArray($ _ GET);

和我可以只是回声和将打印“justnajm”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top