Saltar al contenido

¿Cuál es el propósito de los signos de interrogación antes de la declaración de tipos en PHP7 (?string o ?int)?

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, $parameter1deber 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *