2014-12-27 11 views
8

ho fatto una classe in PHP e sto ottenendo un errore fatale (titolo) sulla linea contrassegnata da un asterisco (*)PHP accesso al sommerso Proprietà statica

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

non riesco a capire fuori da cosa lo sta causando, inoltre, la seguente classe (stesso file) sta restituendo lo stesso errore.

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

Ti capita di sapere che cosa causa l'errore o come posso risolverlo?

risposta

10

Dovresti dichiarare le tue proprietà con la parola chiave static, ad es.

static private $id = 0; 
8

Uso $this-> invece di self::

Sé è per i membri statici e questo è per le variabili di istanza.

Problemi correlati