2011-07-14 23 views
-2

我在PHP是這樣的:做可在其他外部功能一個變量的值:特殊情況


- mainfunction
- 功能1
- 函數2

函數1和函數2從main函數調用。我需要函數1中的變量值傳遞給函數2。他們沒有關係,所以我不能通過參數。

我試過用$ this->變量,但在function2中看不到變化。

在此先感謝。


在我使用的類定義中:var $ piVarsList; 然後在函數1中我寫道:$ piVarsList = $ this-> piVars;我使用print_r($ piVarsList)在函數1中調試時;我看到$ this-> piVars數據,但是當我在function2中這樣做時,我什麼都看不到。


謝謝玻璃機器人。我遇到了問題。函數1和函數2中的代碼呈現一個網頁,所以當執行函數2時,它將在代碼的新調用中,函數1永遠不會被調用。

我想以不同的方式存儲來自function1的數據,而不是在URL中傳遞參數,因爲我使用緩存功能,如果URL中的參數不同,它會存儲新頁面。

+0

你能添加一個例子嗎? $ this-> smth應該可以工作 – RiaD

+0

你介意分享代碼嗎? – Shameer

+1

@Memochipan:編輯您的帖子以顯示源 – RiaD

回答

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; 
    } 
}