我在一个函数中设置了一个变量,而我试图在另一个函数中使用它。人们似乎建议不要将全局变量用于功能。
此代码在我的第一个变量中
Error: The server does not support SSL connections
at Socket.<anonymous> (node_modules/pg/lib/connection.js:87:35)
这是我要传递给另一个函数的变量 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);
。我应该在第一个变量的末尾添加return $bonus_exp
,然后像这样向第二个变量添加$bonus_exp;
作为参数吗?
$bonus_exp
答案 0 :(得分:1)
也许您正在寻找 Passing by Reference
我认为您应该为您的问题想出另一种解决方案,但是通过引用比使用全局变量更好。
答案 1 :(得分:0)
我会按照您的建议进行操作,使用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
传递到函数中。
答案 2 :(得分:0)
基本上有两种方法可以从函数中获取一些变量。
首先,您说的是通过引用。
另一个是返回值。当您返回类似
的数组时,使用return可能会获得多个值。if(expression){
return ["exp" => $exp, "bonus",$bonus];
} else {
return false;
}
因此您可以使用
if($array = topFunction($param1,$param2)){
$exp = $array["exp"];
$bonus = $array["bonus"];
}
我更喜欢第二个。您不应执行两次相同的功能。