С появлением подсказок по типам свойств в PHP 7.4 крайне важно присваивать допустимые значения все свойства, чтобы обеспечить соблюдение их объявленных типов. Неопределенное свойство без присвоенного значения не соответствует какому-либо объявленному типу и вызывает сообщение об ошибке: «Типизированное свойство не должно быть доступно до инициализации».
Например, рассмотрите следующий код:
class Foo { private string $val; public function __construct(int $id) { $this->id = $id; } public function getVal(): string { return $this->val; } }
Доступ к $val после создания Foo приведет к ошибке, так как его тип еще не определен (неопределенный !== null).
Чтобы решить эту проблему, присвойте значения всем свойствам во время создайте или установите для них значения по умолчанию:
class Foo { private string $val = null; // default null value public function __construct(int $id) { $this->id = $id; } }
Теперь все свойства имеют допустимые значения, что устраняет ошибку.
Эта проблема также может возникнуть при использовании значений базы данных для свойств объекта, таких как автоматически сгенерированные идентификаторы или временные метки. Для автоматически сгенерированных идентификаторов объявите их допускающими значение NULL:
private ?int $id = null;
Для всех остальных выберите соответствующие значения по умолчанию, соответствующие их типам.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3