Hola usuario de nuestro sitio, encontramos la respuesta a lo que andabas buscando, deslízate y la verás a continuación.
Solución:
se llama un Tipo anulableintroducido en PHP 7.1.
Podrías pasar un NULL
valor si hay un tipo que acepta valores NULL (con ?
) parámetro, o un valor del mismo tipo.
Parámetros:
function test(?string $parameter1, string $parameter2)
var_dump($parameter1, $parameter2);
test("foo","bar");
test(null,"foo");
test("foo",null); // Uncaught TypeError: Argument 2 passed to test() must be of the type string, null given,
Tipo de retorno:
El tipo de devolución de una función también puede ser un tipo anulable y permite devolver null
o el tipo especificado.
function error_func():int
return null ; // Uncaught TypeError: Return value must be of the type integer
function valid_func():?int
return null ; // OK
function valid_int_func():?int
return 2 ; // OK
Tipo de propiedad (a partir de PHP 7.4):
El tipo de una propiedad puede ser un tipo anulable.
class Foo
private object $foo = null; // ERROR : cannot be null
private ?object $bar = null; // OK : can be null (nullable type)
private object $baz; // OK : uninitialized value
Ver también :
Tipos de unión anulables (a partir de PHP 8.0)
A partir de PHP 8, “?T
notación se considera una abreviatura para el caso común de T|null
“
class Foo
null $baz = null; // as of PHP 8.0
Referencias
A partir de PHP 7.1:
Las declaraciones de tipo para parámetros y valores devueltos ahora se pueden marcar como anulables al anteponer el nombre del tipo con un signo de interrogación. Esto significa que, además del tipo especificado, NULL se puede pasar como argumento o devolver como valor, respectivamente.
A partir de PHP 7.4: Declaraciones de tipo de propiedades de clase.
A partir de PHP 8.0: Tipo de unión anulable
El signo de interrogación antes del string
en su parámetro de función denota un tipo anulable. En tu ejemplo anterior, $parameter1
deber se permite tener un NULL
valor, mientras que $parameter2
no es; debe contener un válido string.
Los parámetros con un tipo anulable no tienen un valor predeterminado. Si se omite, el valor no se establece por defecto en null y dará como resultado un error:
función f(?llamable $p)
F(); // inválido; la función f no tiene un valor predeterminado
valoraciones y comentarios
Si te apasiona la programación, tienes la libertad de dejar un ensayo acerca de qué te ha gustado de esta reseña.