2013-01-08 51 views
0

我知道這是好做的事情它的意思是這樣,使用這個 - $> FNAME申報,並設置一個共享的PHP類變量在類變量....我得到的..

,但不使這個問題很長,讓我們只說我在我的類中的函數提取並以大量的數據分析和大量的變量,在此設置是$ var = 「」;方式。

說.. $ FNAME = 「Sollenn」; $ age =「20」;

我有,我應該在我的代碼再打同一個類的另一個功能,這個功能需要調用這些變量同樣的方式

$currentName = $fname; 
etc.. 

如果我嘗試並設置類變量$這個 - > FNAME適當的第一功能,第二功能/程序將打破..

,我不能在全球化FNAME $等變量太..怎麼把我需要的變量留在類

有任何其他方式來做到這一點?

+0

「F我嘗試設置類變量$ T他的 - > FNAME在第一個功能正常,第二個功能/例程將中斷..「究竟發生了什麼? – Bgi

回答

1

有你的第一種方法返回數組,然後將它傳遞給第二方法時,你需要

Class Foo 
{ 

    public function first() 
    { 
      // process that builds an array 

      return $array; 
    } 

    public function second($array) 
    { 
      // do something with array 
    } 
} 


$foo = new Foo; 

$array = $foo->first(); 

// other stuff in code 

$foo->second($array); 

編輯:思考它,有沒有必要到陣列存儲類外

class Bar 
{ 
    protected $array_from_first; 

    public function first() 
    { 
      $this->array_from_first = $array; 
    } 

    public function second() 
    { 
      $array = $this->array_from_first; 
    } 
} 
+0

是的,這是即時在做什麼..我必須存儲在數組中,並解析在第二個功能,無需將其存儲在外面,正確。 但挑戰在於使用創建的實際變量...變量來自複雜的mysql選擇查詢的方式和它的噸..我有一個例程每個變量傳遞(檢查,操縱等)。 所以現在即時通訊使用數組tnx .. 哦,並作爲科林提到,常規$ var宣佈是功能完成後swiped乾淨..也許有沒有辦法..嗯.. – BrownChiLD

+0

@brownchild Surely你可以將你需要的變量捆綁到數組中,然後在第二種方法中訪問它們?你需要訪問'$ var'而不是'$ array ['var']'有什麼特別的原因嗎?你總是可以將變量提取到第二個方法的範圍中,例如。 'extract($ this-> vars_from_first)'如果你確實需要它們而不必訪問數組鍵。 – Crisp

+0

是的,這就是我一直在做的事情.. 但現在我在幾種情況下,它會更容易從我的第一個函數直接訪問變量..這很難解釋,嘿嘿.. 我知道在一天結束時我必須以更合適的方式來計算它,但現在,我只是檢查是否有辦法做到這一點..它會爲我節省很多麻煩lolz – BrownChiLD

1

通過只是聲明一個變量$var = "value";您聲明在本地堆棧變量。堆棧被消滅了函數執行完成時,堆棧是不是從功能範圍之外的訪問。

你將不得不使用:

  • 實例變量(你說你不能,但我想看看會發生什麼,當你嘗試,因爲我懷疑你只是沒有正確使用使用它們這裏的變量)。
  • 靜態類變量(但如果你需要這些變量是爲對象的每個實例不同,這顯然是行不通的)
+0

感謝澄清刷卡乾淨的部分。我想,除非在$變量的形式是一種方法,我可以把它傳遞給類的根空間從功能,如,我不能在一個類中重複使用它們吧? 在閃光(我做的動作閃了很多東西),我可以輕鬆地發送這些到_parent.variable或_root.variable甚至其他物體.. – BrownChiLD

+0

哦,你瓦特/我沒有使用$變量處理是正確的部分正確..長話短說,它是如此容易得多,從第2個功能,形式操縱在其經常在$變量,而不是指向每個..它打亂了我的代碼..專門的HTML塊 只是爲了舉例: $texthere 這麼多simplier直forward..i甚至不瓦納鍵入$這個 - > URL件事的這個例子。這樣的麻煩大聲笑 但嚴重的是,有很多更復雜的情況,我喜歡上述,正則表達式替換等.. – BrownChiLD