2009-10-13 16 views

ответ

3

Это зависит от того, что вы хотите инициализировать. Я предпочитаю инициализировать их, когда они объявлены, если это возможно, но если они должны быть, например, результатом вызова метода, тогда вам нужно будет инициализировать их в конструкторе.

+0

Значит, это не имеет значения? В любом случае я хочу, чтобы все мои переменные были установлены в null при создании экземпляра объекта. – dotty

+0

Нет, это не имеет значения. Просто убедитесь, что вы инициализировали их до того, как собираетесь их использовать. – James

+1

Если вы хотите, чтобы они установили значение null, то просто var $ my_var; (хотя вы должны использовать, например, public $ my_var; для PHP5) – Greg

0

я бы сказал

class Foo 
    { 
     public $bar = 'default'; 

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

Я думаю, что было бы лучше, чтобы инициализировать их в конструкторе. Обычно я думаю, что это вопрос предпочтений разработчиков, но с введением auto-implemented properties с C# 3.0 я считаю, что имеет смысл просто поместить всю инициализацию в конструктор (ы), потому что вы не можете предоставить значение для свойства, объявленного в этом манера. И быть последовательным в том, где вы вводите переменные, делает ваш код более удобочитаемым.

+0

Не * полностью * уверен, как C# 3.0 влияет на PHP ... – Greg

+1

Ну, это, конечно, смешно ... показалось, что это .NET. Я вижу все как псевдокод в наши дни. – Mayo

1

Зависит от использования переменной. ООП подчеркивает, что вы инициализируете свои переменные в конструкторе класса.

0

Как только у вас будет достаточно информации, чтобы правильно их установить.

0

Для меня переменная, инициализированная в ее объявлении (вне конструктора), выглядит слишком сильно, как константа. Это полностью предпочтение, но я предпочитаю инициализировать конструктор, если это вообще возможно.

Смежные вопросы