2010-12-02 2 views
0

Existe-t-il une différence entre ces méthodes de déclaration et de définition d'une variable de classe publique? Y a-t-il une raison pour laquelle vous choisiriez l'un plutôt que l'autre?Meilleure méthode de définition d'une variable de classe publique dans PHP

Méthode 1

class example { 

    public $myArray; 

    function __construct() { 
    $this->myArray = array(1, 2, 3); 
    } 

    function showVar() { 
    print_r($this->myArray); 
    } 

} 

Méthode 2

class example { 

    public $myArray = array(1, 2, 3); 

    function showVar() { 
    print_r($this->myArray); 
    } 

} 

Répondre

2

En premier cas, le code sera évalué chaque fois que vous créez une nouvelle instance de classe.

Dans le second cas, il sera évalué une seule fois lorsque la classe a été analysée.

C'est tout.

+0

Donc, je suppose que vous voudriez seulement définir une variable de classe publique en utilisant le constructeur si la variable devait être calculée en premier? Et donc dans le cas de mon exemple où le tableau ne changera jamais la méthode 2 serait la bonne? – Chris

+0

@Chris: il est parfois impossible de calculer le membre de façon statique. Par exemple si vous avez besoin d'y mettre l'heure actuelle. Dans ce cas, vous devez initialiser les données dans le constructeur. – zerkms

Questions connexes