2012-08-10 116 views
5

我有一個私有變量在我的課訪問私有變量從靜態函數在PHP

private $noms = array(
     "HANNY", 
     "SYS", 
     "NALINE" 
); 

我想從一個靜態方法訪問:

public static function howManyNom($searchValue){ 

     $ar = $this->noms; 

     foreach($ar as $key => $value) { 

... 

但作爲正常我不能用$ this檢索它,因爲靜態方法中沒有實例。

在靜態函數中獲取$ noms的正確語法是什麼?

+0

使$ noms數組靜態也 – martynthewolf 2012-08-10 11:59:55

回答

13

使該屬性爲靜態!

private static $noms = array(
    "HANNY", 
    "SYS", 
    "NALINE" 
); 


public static function howManyNom($searchValue){ 

    $ar = self::$noms; 

    foreach($ar as $key => $value) { 
+0

已經嘗試過,當我通過self :: noms調用它說'nom'是undefined – Michele 2012-08-10 12:01:24

+0

我已編輯 - 看看! – tuxtimo 2012-08-10 12:02:23

+0

現在可以工作嗎? – tuxtimo 2012-08-10 12:11:37

0

要訪問$ NOMS陣列使其靜態的,你這樣做,就像這樣:

private static $noms = array();

然後,您可以訪問像這樣:

self::$noms['some key'];

+0

這是錯的 - 自我沒有$ -char! – tuxtimo 2012-08-10 12:03:18

+0

@tuxtimo歡呼的夥計,已經得到它,錯字:( – martynthewolf 2012-08-10 12:04:04

0

你必須使noms靜態,並通過self :: $ noms訪問它。