Стоит ли указывать, что свойство — массив?

protected static $routes = [];// работает и просто protected static $routes;
public $vars = [];// работает и просто public $vars;
  • Вопрос задан
  • 1149 просмотров
Решения вопроса 3
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Я следую такой логике:

- $var; если свойство будет инициализировано при создании (конструктор, boot и тд)
- $var = null; если свойство хранит значение по умолчанию, которое не требует инициализации. С точки зрения языка это идентично предыдущему варианту, но видя явное = null я понимаю, что именно это значение будет у конкретного экземпляра. Просто упрощает чтение кода.
- $var = []; вариант предыдущего, задает дефолтное значение которое поможет в дальнейшем избежать проверки is_array и дает возможность со старта юзать array_push например. Упрощает код. Ну и PhpStorm ругнется сразу если я попытаюсь в эту переменную записать данные другого типа.

Последние 2 правила касаются не только null и array, но и других типов.
Ответ написан
Комментировать
@Arik
По умолчанию свойства под null, т.е. никак не указаны, удобно пользоваться когда нужно сделать затратные действия

public $vars;

public function getVars () {
    if($this->vars === null) {
        $this->vars = $this->loadVars();
    }
    return $this->vars;
}
Ответ написан
php666
@php666
PHP-макака
Стоит ли указывать, что свойство — массив?
да, если не нужна ленивая загрузка ка в примере от Arman
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы