Первый способ намного лучше второго и является приемлемым способом передачи переменных в представления.
Например, скажем, у вас есть два представления. В первом представлении отображаются все пользователи системы, а во втором - пользователи, которые в данный момент вошли в систему. Оба представления перебирают переменную $users
и выводят их имена. Используя ваш второй метод, вы должны будете присвоить соответствующие данные $this->users
перед загрузкой каждого представления. Необходимость использовать уникальные имена переменных между всеми загруженными представлениями для данного запроса вышла бы из-под контроля.
Кроме того, некоторые виды могут стать довольно сложными. Не имеет смысла присваивать каждую переменную, которая вам нужна в представлении, свойству вашего контроллера.