2012-08-10 120 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访问它。