Php 在另一个函数中定义局部变量
我一直在研究PHP中的和,看看是否有以下可能:Php 在另一个函数中定义局部变量,php,object,functional-programming,Php,Object,Functional Programming,我一直在研究PHP中的和,看看是否有以下可能: function one() { setVars(); // $node would be in scope print_r($node); } function setVars() { return $node = '2'; } 这是一个经典的编程概念吗?反思似乎是最贴切的事情。基本上,我只想在不同的作用域(调用setVars()函数的函数的作用域/上下文)中定义变量。对于多个变量,请尝试将它们存储在数组中并返回数组 f
function one() {
setVars();
// $node would be in scope
print_r($node);
}
function setVars() {
return $node = '2';
}
这是一个经典的编程概念吗?反思似乎是最贴切的事情。基本上,我只想在不同的作用域(调用setVars()函数的函数的作用域/上下文)中定义变量。对于多个变量,请尝试将它们存储在数组中并返回数组
function one() {
$nodeArray = setVars();
print_r($nodeArray );
}
function setVars() {
$nodeArray[] = 1;
$nodeArray[] = 1;
$nodeArray[] = 1;
return $nodeArray;
}
请看extract()
应该说,尽管这是可能的,但它通常会导致糟糕的体系结构和问题。
$node
不在其中。您必须执行$node=setVars()
。。。除非我遗漏了什么。你可以返回一个数组,然后使用extract
。。。或者jsut使用数组中的变量。@prodigitalson或者只使用我发布的示例中的list
语法,就是为了这个目的而做的。@mavame我不明白为什么会这样做。如果你想把两个不同的函数紧密地耦合在一起,为什么不把它们放在一个公共类中,这样所有的方法都可以访问类属性(可以用像setVars
这样的方法来设置)?我想没有必要压缩和提取。不,可能没有,但问题是关于在另一个范围内定义局部变量,我认为这是最接近的,我应该更清楚。我想定义多个变量,而不仅仅是一个。这是多个亲爱的。不同之处在于我将值存储在一个数组中,只是您的示例只返回一个值。然后,我需要对结果运行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');
}