PHP 7.1 o más reciente (lanzado el 2 de diciembre de 2016)
Puede declarar explícitamente una variable null
con esta sintaxis
function foo(?Type $t) {
}
esto resultará en
$this->foo(new Type()); // ok
$this->foo(null); // ok
$this->foo(); // error
Entonces, si desea un argumento opcional, puede seguir la convención, Type $t = null
mientras que si necesita hacer que un argumento acepte ambos null
y su tipo, puede seguir el ejemplo anterior.
Puedes leer más aquí .
PHP 7.0 o anterior
Tienes que agregar un valor predeterminado como
function foo(Type $t = null) {
}
De esa manera, puede pasarle un valor nulo.
Esto está documentado en la sección del manual sobre declaraciones de tipo :
La declaración se puede hacer para aceptar NULL
valores si el valor predeterminado del parámetro se establece en NULL
.
function foo(Type $t)
es algo MUY bueno; ver Referencias nulas: El error del billón de dólares