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

public function getVars () {
    if($this->vars === null) {
        $this->vars = $this->loadVars();
    }
    return $this->vars;
}