2009-10-13 8 views

Répondre

3

Cela dépend de ce que vous voulez initialiser. Je préfère les initialiser quand ils sont déclarés si possible, mais s'ils doivent être, par exemple, le résultat d'un appel de méthode, alors vous devrez les initialiser dans le constructeur.

+0

Alors, ça n'a pas vraiment d'importance? Dans les deux cas, je veux que toutes mes variables soient nulles lors de la création d'une instance de l'objet. – dotty

+0

Non, ce n'est pas grave. Assurez-vous de les avoir initialisés avant de les utiliser. – James

+1

Si vous voulez les mettre à null alors var $ my_var; fera (bien que vous devriez utiliser par exemple $ mon_var public, pour PHP5) – Greg

0

je dirais

class Foo 
    { 
     public $bar = 'default'; 

     function __construct($custom_bar = null) { 
      if(!is_null($custom_bar)) 
       $this->bar = $custom_bar; 
     } 
1

Je pense qu'il serait préférable de les initialiser dans le constructeur. Je pense normalement que c'est une question de préférence de développeur, mais avec l'introduction de auto-implemented properties avec C# 3.0, je pense qu'il est plus logique de mettre toute l'initialisation dans le (s) constructeur (s) parce que vous ne pouvez pas fournir de valeur à une propriété déclarée manière. Et étant cohérent sur l'endroit où vous initialisez les variables rend votre code plus lisible.

+0

Pas * entièrement * sûr comment C# 3.0 affecte PHP ... – Greg

+1

Eh bien, c'est certainement drôle ... pensé que c'était .NET. Je vois tout comme du pseudo code ces jours-ci je suppose. – Mayo

1

Dépend de l'utilisation de la variable. La POO souligne que vous initialisez vos variables dans le constructeur de la classe.

0

Dès que vous avez assez d'informations pour les régler correctement.

0

Pour moi, une variable initialisée à sa déclaration (en dehors du constructeur) ressemble trop à une constante. C'est totalement préférence, mais je choisis d'initialiser dans le constructeur si possible.

Questions connexes