Можно ли задать тип переменной экземпляра в php? Привет!
Сами мы в php не местные, без типизации свойств объекта непривычно. По этому прошу: помогите чем можете. Допустим есть у меня класс MyClass и еще одни класс - MyAnotherClass, в котором есть переменная $myClassInstance. Так вот хотелось бы этой самой переменной жестко задать тип MyClass что бы потом самому, своими кривыми руками, случайно не присвоить ошибочное значение. Я представляю как это можно сделать написав свои геттер и сеттер, но хотелось бы обойтись без преферанса и балерин.
Заранее спасибо!

21 Авг 2019 в 07:08
179 +1
0
Ответы
1

Да, в PHP начиная с версии 7.4 можно задать тип переменной класса в свойствах объекта. Например, в вашем случае вы можете объявить переменную $myClassInstance в классе MyAnotherClass и указать тип MyClass для неё, как показано ниже:

class MyAnotherClass {
private MyClass $myClassInstance;
public function setMyClassInstance(MyClass $myClassInstance): void {
$this->myClassInstance = $myClassInstance;
}
public function getMyClassInstance(): MyClass {
return $this->myClassInstance;
}
}
class MyClass {
// код вашего класса MyClass
}
$myClassInstance = new MyClass();
$anotherClass = new MyAnotherClass();
$anotherClass->setMyClassInstance($myClassInstance);

Таким образом, переменная $myClassInstance будет иметь тип MyClass и вы сможете избежать присвоения ошибочного значения.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 017 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир