如何在不使用extract()的情况下提取变量?

时间:2012-08-19 13:34:25

标签: php

我想要一个函数将变量导出到它所调用的范围内而不使用extract(),例如。

function get_vars(){
  $return['a'] = 1;
  $return['b'] = 2
  return $return;
}

然后而不是使用:

exctract(get_vars());

我会用

get_vars();

无论如何都可以吗?

2 个答案:

答案 0 :(得分:0)

在提取函数的php manuel中看到了可能的解决方案。 (http://www.php.net/manual/en/function.extract.php#62727)

function free_args (&$V) {
    foreach ($V as $k => &$v) {
        $$k =& $v;
    }
    unset ($k);  unset ($v);  unset ($V);

    // be careful that if you need to extract $k, $v or $V variables you should find other names for them in the lines above (ie. $__k, $__v and $__V)
}

答案 1 :(得分:0)

您可以尝试使用global关键字

function get_vars() {
  global $a, $b;
  $a = 1;
  $b =2;
}

但就我而言,这是一种非常奇怪的方法。我更喜欢使用OOP。