PHP инициализируют переменную в __ конструкция () по сравнению с объявлением

я задаюсь вопросом, существует ли какое-либо различие между

class TestClass {
    private $_var = "abc";
}

по сравнению с

class TestClass {
    private $_var;
    function __construct() {
        $this->_var = "abc";
    }
} 

я задаюсь вопросом, является ли последний предпочтительным путем / лучшей практикой? есть ли какое-либо функциональное различие?

35
задан Jiew Meng 9 July 2010 в 03:16
поделиться

2 ответа

Они фактически одинаковы. Я предпочитаю первый, потому что тогда есть только одно место, где нужно искать значение и его значение по умолчанию.

С другой стороны, если вам нужно сделать с ним что-то динамическое или установить его во что-нибудь, кроме массива или примитива, вам нужно использовать вторую форму. Примечательно, что вы не можете использовать вызов функции для объявления переменной в первой форме.

27
ответ дан 27 November 2019 в 15:44
поделиться

Отличный вопрос! Мне кажется, что первый пример более правильный, если вы уже знаете начальное значение атрибута объекта, зачем вам объявлять его в конструкторе?

Мне кажется, что цель конструктора - установить атрибуты, которые могут быть переменными.

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

3
ответ дан 27 November 2019 в 15:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: