[英]Passing variables from one function to another
我在一个函数中设置了一个变量,我试图在另一个函数中使用它。 人们似乎建议不要对函数使用全局变量。
这段代码在我的第一个变量中
if($this->CheckAndSetupContractHitman($player_data_tab,$player_defence_data_tab)) $winner_exp = $winner_exp + floor($winner_exp*0.4);
if($this->CheckAndSetupContractHitman($player_data_tab,$player_defence_data_tab)) $bonus_exp = floor($winner_exp*0.2857);
这是我试图传递给另一个函数的变量$bonus_exp
。 我应该添加 return $bonus_exp;
在第一个变量的末尾,然后像这样将$bonus_exp
作为参数添加到第二个变量中?
function CheckAndSetupContractHitman($player_data_tab,$player_defence_data_tab,$bonus_exp)
也许您正在寻找 通过引用传递
我认为您应该为您的问题考虑另一种解决方案,但通过引用传递比使用全局变量更好。
我会按照你的建议去做,使用return
并传递参数。 有一个例外:让它等于空(空)——这样.. 该函数在技术上不需要它作为输入,你可以简单地包括或不包括它,由你决定。
function CheckAndSetupContractHitman($player_data_tab,$player_defence_data_tab,$bonus_exp = ''){
if ($bonus_exp != ''){
// Do something
}
// ....
return bonus_exp;
}
这样设置——如果你调用函数没有$bonus_exp
IE
CheckAndSetupContractHitman($player_data_tab,$player_defence_data_tab);
$bonus_exp
将被设置为''
但是,如果您设置了它并将其传入......它将被设置为您通过的任何内容。 IE
$bonus_exp = 50;
CheckAndSetupContractHitman($player_data_tab,$player_defence_data_tab,$bonus_exp);
$bonus_exp
将作为50
传递给函数。
基本上有两种方法可以从函数中获取一些变量。
首先,正如你所说的通过引用传递。
另一个是返回值。 当您返回如下数组时,可能会通过返回获得 1 个以上的值:
if(expression){
return ["exp" => $exp, "bonus",$bonus];
} else {
return false;
}
所以你可以使用像
if($array = topFunction($param1,$param2)){
$exp = $array["exp"];
$bonus = $array["bonus"];
}
我更喜欢第二个。 您不应该执行 2 次相同的功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.