我们可以在不使用zend api的情况下在php中实现php提取函数吗

我们可以在不使用zend api的情况下在php中实现php提取函数吗,php,scope,extract,symbol-table,Php,Scope,Extract,Symbol Table,php的Extract函数将变量添加到调用函数的本地范围。我们如何编写自己的php函数摘录,它也能做到这一点呢?是一个javascript库,其中包含与php函数相同的函数,下面是它的函数,您可以从中获得一些想法。话虽如此,我还是想知道,既然php已经提供了自己的函数,为什么还要寻找自己的函数。是一个javascript库,其中包含了与php相同的函数,下面是它的函数,您可以从中获得一些想法。话虽如此,我还是想知道,既然php已经提供了一个函数,为什么还要寻找自己的函数。我认为在纯php中无法做

php的Extract函数将变量添加到调用函数的本地范围。我们如何编写自己的php函数摘录,它也能做到这一点呢?

是一个javascript库,其中包含与php函数相同的函数,下面是它的函数,您可以从中获得一些想法。话虽如此,我还是想知道,既然php已经提供了自己的函数,为什么还要寻找自己的函数。

是一个javascript库,其中包含了与php相同的函数,下面是它的函数,您可以从中获得一些想法。话虽如此,我还是想知道,既然php已经提供了一个函数,为什么还要寻找自己的函数。

我认为在纯php中无法做到这一点:函数无法访问其调用者的变量

这看起来像是您需要编写一个C扩展来开发的东西——您将对PHP变量的内部有更多的控制


(我真的不明白你为什么要这么做:为什么不直接使用现有函数?

我认为在纯PHP中你做不到这一点:函数无法访问其调用者的变量

这看起来像是您需要编写一个C扩展来开发的东西——您将对PHP变量的内部有更多的控制


(我真的不明白你为什么要这么做:为什么不直接使用现有的功能呢?

好的,如果只是为了好玩的话,可以:

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

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

echo $a;
?>


但也存在一些问题,如与$data、$name和$value冲突,无法将其封装到函数中。但这是可能的。

好吧,如果只是为了好玩,那就有可能:

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

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

echo $a;
?>

但也存在一些问题,如与$data、$name和$value冲突,无法将其封装到函数中。但这是可能的。

是的,这是可能的

我之所以这样做,是因为我需要从extract函数中得到更多的东西,它也应该修剪这些值

function extractArray($ar) {
        if(count($ar)>=1) {
            foreach($ar as $k=>$v) {
                $GLOBALS[$k] = (is_array($v)?$v:trim($v));
            }
        }
}
我只是通过我的$\u GET、$\u POST和其他类似的数组 例如。 $_GET['username']='justnajm'; 提取数组($\u-GET)

我可以直接回显,它会打印“justnajm”

是的,这是可能的

我之所以这样做,是因为我需要从extract函数中得到更多的东西,它也应该修剪这些值

function extractArray($ar) {
        if(count($ar)>=1) {
            foreach($ar as $k=>$v) {
                $GLOBALS[$k] = (is_array($v)?$v:trim($v));
            }
        }
}
我只是通过我的$\u GET、$\u POST和其他类似的数组 例如。 $_GET['username']='justnajm'; 提取数组($\u-GET)


我可以直接回显,它会打印“justnajm”

为什么我不明白这个问题的意图。当然,我不会那样做。我只是在想有没有办法。现在确认我们不能。你为什么要这样做我不明白这个问题的意图。当然,我不会那样做。我只是在想有没有办法。我只是想知道是否有任何纯php的方式来实现extract我只是想知道是否有任何纯php的方式来实现extract