在其他外部函数中可用一个变量的值:特殊情况

时间:2011-07-14 16:26:37

标签: php class variables pass-by-reference

我在PHP中有这样的东西:

  


      - 主要功能
      - 功能1       - function2

从mainfunction调用function1和function2。我需要function1中的变量值传递给function2。它们没有关联,所以我不能作为参数传递。

我尝试使用$ this->变量,但是在function2中没有看到更改。

提前致谢。


在我使用的类定义中:var $ piVarsList; 然后在function1中写道:$ piVarsList = $ this-> piVars;

当我使用print_r($ piVarsList)在function1中调试时;我看到了$ this-> piVars数据,但是当我在function2中执行此操作时,我什么都没看到。


谢谢Glass Robot。我遇到了问题。 function1和function2中的代码呈现一个网页,所以当执行function2时,它处于代码的新调用中,而function1永远不会被调用。

我正在尝试以不同的方式存储来自function1的数据,而不是在URL中传递参数,因为我正在使用缓存功能,如果URL中的参数是不同的,它会存储新页面。

1 个答案:

答案 0 :(得分:1)

在您更新的问题中,您的问题是您将局部变量分配给类变量的值。你需要反过来做这件事:

class ClassName
{
    protected $a_variable;

    public function function1()
    {
        // $variable can only be seen inside the method function1
        $variable = 'stuff';
        $this->a_variable = $variable;

        // can also be written like this:
        //$this->a_variable = 'stuff';
    }

    public function function2()
    {
         echo $this->a_variable;
    }
}