将变量从一个函数传递到另一个函数

时间:2019-03-19 21:39:04

标签: php function variables

我在一个函数中设置了一个变量,而我试图在另一个函数中使用它。人们似乎建议不要将全局变量用于功能。

此代码在我的第一个变量中

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

3 个答案:

答案 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"];
}

我更喜欢第二个。您不应执行两次相同的功能。