Con la introducción de sugerencias de tipo de propiedad en PHP 7.4, es crucial asignar valores válidos a todas las propiedades para garantizar que se respeten los tipos declarados. Una propiedad indefinida, sin valor asignado, no coincide con ningún tipo declarado y genera el mensaje de error: "No se debe acceder a la propiedad escrita antes de la inicialización".
Por ejemplo, considere el siguiente código:
class Foo { private string $val; public function __construct(int $id) { $this->id = $id; } public function getVal(): string { return $this->val; } }
Acceder a $val después de construir Foo daría como resultado el error, ya que su tipo aún no está definido (undefinido!== null).
Para resolver esto, asigne valores a todas las propiedades durante construcción o establecer valores predeterminados para ellos:
class Foo { private string $val = null; // default null value public function __construct(int $id) { $this->id = $id; } }
Ahora, todas las propiedades tienen valores válidos, lo que elimina el error.
Este problema también puede surgir cuando se depende de los valores de la base de datos para las propiedades de la entidad, como ID generados automáticamente o marcas de tiempo. Para los ID generados automáticamente, declararlos como anulables:
private ?int $id = null;
Para todos los demás, elija los valores predeterminados apropiados que coincidan con sus tipos.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3