2014-12-27 17 views
8

Zrobiłem klasę w PHP i Dostaję błąd krytyczny (tytuł) na linii oznaczone gwiazdką (*)PHP Dostęp do Undeclared Właściwość statyczna

class monster{ 
    private $id = 0; 
    private $name = ""; 
    private $baseLevel = 0; 
    private $attack = 0; 
    private $defense = 0; 
    private $baseEXP = 0; 
    private $dropType = 0; 
    private $dropNum = 0; 
    function __construct($a, $b, $c, $d, $e, $f, $g, $h){ 
    * self::$id=$a; 
     self::$name = $b; 
     self::$baseLevel = $c; 
     self::$attack = $d; 
     self::$defense = $e; 
     self::$baseEXP = $f; 
     self::$dropType = $g; 
     self::$dropNum = $h; 
    } 
} 

nie mogę zrozumieć poza tym, co go powoduje, również ta klasa (ten sam plik) zwraca ten sam błąd.

class item{ 
    private $id = 0; 
    private $name = ""; 
    private $type = 0; #0-weapon, 1-armor, 2-charm, 3-ability 
    private $ability = 0; 
    private $desc = ""; 
    private $cost = 0; 
    function __construct($a, $b, $c, $d, $e, $f){ 
     self::$id=$a; 
     self::$name=$b; 
     self::$type=$c; 
     self::$ability=$d; 
     self::$desc=$e; 
     self::$cost = $f; 
    } 
} 

Czy zdajesz sobie sprawę z przyczyny błędu lub jak mogę to naprawić?

Odpowiedz

10

Należy zadeklarować swoje właściwości za pomocą słowa kluczowego static, np.

static private $id = 0; 
8

Zastosowanie $this-> zamiast self::

własna jest dla członków statycznych i to jest dla zmiennych instancji.

Powiązane problemy