访问其他功能元素

时间:2018-04-06 10:14:22

标签: php php-7

所以,我有两个功能。第一个是激活游戏奖金,另一个是在模板中显示所有奖金。

public function send()
{
    $reduct = (1 - $CONF['reduc_numb'] / 100);
}

第二功能:

function show()
{
    $this->tplObj->assign_vars(array('bonus' => $USER_bonus));
}

我的问题是如何在功能展示中访问$reduct元素并将其分配给我的模板文件?

3 个答案:

答案 0 :(得分:0)

如果你的两个函数send()和show()在同一个类中,那么

您可以在show()函数中调用send()函数,如下所示

public function send()
{
    $reduct = (1 - $CONF['reduc_numb'] / 100);

    return $reduct;
}

function show()
    {
   $reduct = $this->send();
   $this->tplObj->assign_vars(array(
        'bonus'  => $USER_bonus,
        'reduct' => $reduct

    ));
 }

答案 1 :(得分:0)

添加

return $reduct;

致你的公共职能。当你调用这个函数时,

echo your_function(and, variables, here);

它将像一个变量,因此你可以使用它。

答案 2 :(得分:0)

从字面上看,这是不可能的。这就是为什么......一次只能执行一个功能。并且在该函数完成它的执行之后,将清除每个函数内的局部变量。以下是您实现目标的两种方法。

  1. 使用全局变量,以便这两个函数都可以访问它。

    您可以将变量$reduct声明为全局变量,并使send()将计算值存储到全局变量$reduct,以便show()也可以访问它。在这种情况下,您的代码变为:

    $reduct; function send(){ global $reduct; $reduct = (1 - $CONF['reduc_numb'] / 100); } function show(){ global $reduct; $this->tplObj->assign_vars(array('bonus' => $USER_bonus)); //$reduct is available }

  2. send()内部致电show()

    这种方法很简单。由于您的函数send()已经返回$reduct,请从send()内部调用show()并使用send()返回的值。