Когда переменные должны быть установлены в классе - PullRequest
1 голос
/ 13 октября 2009

Hay, когда переменные должны быть установлены в классе PHP?

<?php
    class MyClass {
        var $my_var;    // here? like var $my_var = null;
        function __construct(){
            $this->my_var = null; // or here?
        }
    }
?>

Ответы [ 6 ]

3 голосов
/ 13 октября 2009

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

1 голос
/ 13 октября 2009

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

1 голос
/ 13 октября 2009

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

0 голосов
/ 13 октября 2009

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

0 голосов
/ 13 октября 2009

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

0 голосов
/ 13 октября 2009

я бы сказал

    class Foo 
    {
        public $bar = 'default';

        function __construct($custom_bar = null) {
            if(!is_null($custom_bar))
                $this->bar = $custom_bar;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...