我在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中的参数是不同的,它会存储新页面。
答案 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;
}
}