2

我一直在研究PHP 中的魔术常数反射,看看是否有可能:

function one() {

  setVars();

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

}

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

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

4

2 回答 2

1

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

function one() {

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

}

function setVars() {
  $nodeArray[] = 1;
  $nodeArray[] = 1;
  $nodeArray[] = 1;
  return $nodeArray;
}
于 2013-04-01T15:33:25.630 回答
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');
}

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

于 2013-04-01T15:40:56.907 回答