Declarar parámetros opcionales php8.2

Descripción

Fatal error: Uncaught TypeError: Argument 2 passed to MiClase::__construct() must be an instance of ClasePadre, null given...

     Uno de los cambios incluidos en la versión 8.2 de PHP, está la declaración de parámetros opcionales dentro de los métodos:

 

Instrucciones

     En el siguiente código, al crear un nuevo objeto, dos de los parámetros dentro del método constructor, deberían poder devolver como resultado, el tipo de objeto ClasePadre o valor null.

     Para más información, visita la página oficial de PHP

    https://www.php.net/manual/es/migration71.new-features.php

Código

Antes:

class MiClase

{

private $propiedad1;

private $propiedad2;

private $propiedad3;

 

public function __construct( bool $propiedad1, ClasePadre $propiedad2 = null, ClasePadre $propiedad3 = null ){

   $this->propiedad1 = $propiedad1;

   $this->propiedad2 = $propiedad2;

   $this->propiedad3 = $propiedad3;

  }

}

Ahora:

class MiClase

{

private bool $propiedad1;

private ?ClasePadre $propiedad2;

private ?ClasePadre $propiedad3;

 

public function __construct( $propiedad1, ?ClasePadre $propiedad2, ?ClasePadre $propiedad3 ){

   $this->propiedad1 = $propiedad1;

   $this->propiedad2 = $propiedad2;

   $this->propiedad3 = $propiedad3;

  }

}

Más Snippets