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

21 Авг 2019 в 07:08
203 +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=newMyAnotherClass();anotherClass = new MyAnotherClass();
anotherClass=newMyAnotherClass();
anotherClass->setMyClassInstance(myClassInstance);</code></pre><p>Такимобразом,переменнаяmyClassInstance);</code></pre><p>Таким образом, переменная myClassInstance);</code></pre><p>Такимобразом,переменнаяmyClassInstance будет иметь тип MyClass и вы сможете избежать присвоения ошибочного значения.

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир