Задать вопрос
@Vladimir-Hetman

Нужно ли передавать значения свойствам класса в конструкторе?

Если, я создал свойства класса в самом конструкторе,
то обязательно ли писать в теле конструктора:
$this -> name = $myName;
$this -> age = $myAge;

Как в коде по старинке ниже.

Свойства созданы по старинке:
class User {
 
public $name, $age;
 
function __construct($myName = "Default", $myAge = 30){
$this -> name = $myName;                
$this -> age  = $myAge; 
}
 
function hi(){
echo "$this->name <br> $this->age";
}};
 
 
$obj = new User();
$obj->hi();


Свойства созданы в самом конструкторе(новый способ):
class User {
 
function __construct(public $myName = "Default", public $myAge = 30){
 
// Можно ли здесь не писать?
// $this -> name = $myName;                
// $this -> age  = $myAge; 
 
}
 
function hi(){
echo "$this->myName <br> $this->myAge";
}};
 
 
$obj = new User();
$obj->hi();
  • Вопрос задан
  • 338 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
@humoured
Вы всё на свете найдёте в коробке с карандашами
обязательно ли писать в теле конструктора
Для PHP 8 — не обязательно.
Для более старый версий — обязательно.
Ответ написан
@romazhan
В этом случае нет необходимости явно инициализировать свойства в теле конструктора.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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