在另一个函数中定义局部变量

时间:2013-04-01 15:30:43

标签: php object functional-programming

我一直在查看PHP中的Magic ConstantsReflection,看看是否有以下内容:

function one() {

  setVars();

  // $node would be in scope
  print_r($node);

}

function setVars() {
  return $node = '2';
}

这是一个经典的编程概念吗?反思似乎是最接近的事情。基本上,我只想在不同的范围内定义变量(调用setVars()函数的函数的范围/上下文)。

2 个答案:

答案 0 :(得分:1)

对于多个变量,尝试将它们存储在数组中并返回数组。

function one() {

  $nodeArray = setVars();
  print_r($nodeArray );

}

function setVars() {
  $nodeArray[] = 1;
  $nodeArray[] = 1;
  $nodeArray[] = 1;
  return $nodeArray;
}

答案 1 :(得分:1)

看一下extract()。

function one() {

  $vars = setVars();
  extract($vars);

  // $node1 would be in scope
  print_r($node1);

}

function setVars() {
  $node1 = '1';
  $node2 = '2';
  return compact('node1','node2');
}

应该说,虽然这是可能的,但它往往导致糟糕的架构和问题。