Declaraciones de tipo escalar
Las declaraciones de tipo escalar en PHP son una característica introducida en PHP 7.0 que te permite especificar los tipos de datos que deben ser utilizados para los argumentos y valores de retorno en funciones y métodos. Esto ayuda a mejorar la claridad y la seguridad del código al definir qué tipos de datos se esperan en ciertos contextos. Las declaraciones de tipo escalar pueden aplicarse a los siguientes tipos de datos escalares:
int: Para números enteros.
function suma(int $a, int $b): int {
return $a + $b;
}
$resultado = suma(5, 3); // Esto es válido
float: Para números de punto flotante.
function dividir(float $a, float $b): float {
return $a / $b;
}
$resultado = dividir(10.5, 2.5); // Esto es válido
string: Para cadenas de texto.
function saludar(string $nombre): string {
return "Hola, $nombre!";
}
$mensaje = saludar("Juan"); // Esto es válido
bool: Para valores booleanos.
function esMayorDeEdad(bool $esMayor): string {
return $esMayor ? "Es mayor de edad" : "No es mayor de edad";
}
$respuesta = esMayorDeEdad(true); // Esto es válido
Observaciones:
- Las declaraciones de tipo escalar son opcionales, y si no se proporciona el tipo correcto, PHP intentará realizar conversiones implícitas siempre que sea posible.
- Si se proporciona un tipo incorrecto, PHP emitirá un error de tipo.
- También puedes usar
mixed
para indicar que la función acepta varios tipos de datos.
function ejemplo(mixed $dato): mixed {
// Código aquí
}
A partir de PHP 8.0, puedes utilizar la declaración de tipo mixed
directamente en los argumentos y valores de retorno sin especificar el tipo exacto.
function ejemplo(mixed $dato): mixed {
// Código aquí
}
El uso de declaraciones de tipo escalar es una buena práctica para mejorar la robustez y la claridad del código, especialmente en proyectos grandes o en colaboraciones con otros desarrolladores.
Declaraciones de tipo devolución
Las «declaraciones de tipo de retorno» en PHP son una característica introducida en PHP 7.0 que te permite especificar el tipo de dato que una función o método debe devolver. Esto ayuda a mejorar la claridad y la seguridad del código al definir explícitamente qué tipo de datos se espera que devuelva una función. Puedes utilizar las siguientes declaraciones de tipo de retorno:
int: Para indicar que la función debe devolver un valor de tipo entero.
function sumar(int $a, int $b): int {
return $a + $b;
}
float: Para indicar que la función debe devolver un valor de tipo punto flotante.
function dividir(float $a, float $b): float {
return $a / $b;
}
string: Para indicar que la función debe devolver un valor de tipo cadena de texto.
function saludar(string $nombre): string {
return "Hola, $nombre!";
}
bool: Para indicar que la función debe devolver un valor booleano.
function esMayorDeEdad(int $edad): bool {
return $edad >= 18;
}
Clase o interfaz: También puedes especificar que la función debe devolver una instancia de una clase o implementar una interfaz particular.
class MiClase {}
function crearInstancia(): MiClase {
return new MiClase();
}
Ejemplos:
function obtenerNumero(): int {
return 42;
}
function calcularPromedio(array $numeros): float {
return array_sum($numeros) / count($numeros);
}
function obtenerNombre(): string {
return "Juan";
}
function estaEncendido(): bool {
return true;
}
Consideraciones:
- Las declaraciones de tipo de retorno son opcionales, y si no se proporciona el tipo correcto, PHP intentará realizar conversiones implícitas siempre que sea posible.
- Si se proporciona un tipo incorrecto, PHP emitirá un error de tipo.
- También puedes usar
mixed
para indicar que la función puede devolver varios tipos de datos.
function ejemplo(): mixed {
// Código aquí
}
A partir de PHP 8.0, puedes utilizar la declaración de tipo mixed
directamente en los valores de retorno sin especificar el tipo exacto.
function ejemplo(): mixed {
// Código aquí
}
El uso de declaraciones de tipo de retorno es una buena práctica para mejorar la robustez y la claridad del código, especialmente en proyectos grandes o en colaboraciones con otros desarrolladores.
Diferencia entre declaraciones de tipo escalar y de tipo devolución
Las declaraciones de tipo escalar (scalar type declarations
) y las declaraciones de tipo de retorno (return type declarations
) en PHP son conceptos distintos y se utilizan en contextos diferentes, aunque ambos están relacionados con la tipificación de datos. Aquí hay una explicación de sus diferencias:
Declaraciones de Tipo Escalar (scalar type declarations
):
- Propósito: Se utilizan para especificar el tipo de datos que se espera para los argumentos de una función o método y no están directamente relacionadas con el valor que la función devuelve.
- Tipos Permitidos: Puedes utilizar declaraciones de tipo escalar para especificar los siguientes tipos de datos escalares:
int
,float
,string
, ybool
. - Ejemplo:
function sumar(int $a, float $b): float {
return $a + $b;
}
- Observaciones: Si se proporciona un tipo incorrecto para un argumento, PHP intentará realizar conversiones implícitas siempre que sea posible. Si no es posible realizar la conversión, se emitirá un error de tipo.
Declaraciones de Tipo de Retorno (return type declarations
):
- Propósito: Se utilizan para especificar el tipo de dato que se espera que una función o método devuelva como resultado.
- Tipos Permitidos: Puedes utilizar declaraciones de tipo de retorno para especificar una amplia variedad de tipos de datos, incluidos los escalares (
int
,float
,string
,bool
), clases, interfaces,array
, y más. - Ejemplo:
function dividir(int $a, int $b): float {
return $a / $b;
}
- Observaciones: Al igual que con las declaraciones de tipo escalar, si la función intenta devolver un tipo incorrecto, PHP emitirá un error de tipo. También puedes usar
mixed
para indicar que la función puede devolver varios tipos de datos.
Resumen:
- Las declaraciones de tipo escalar se utilizan para especificar el tipo de datos que se espera para los argumentos de una función o método.
- Las declaraciones de tipo de retorno se utilizan para especificar el tipo de dato que se espera que una función o método devuelva.
- Ambas declaraciones ayudan a mejorar la claridad y la seguridad del código al definir explícitamente qué tipos de datos se esperan o se devolverán en un contexto específico.
En resumen, las declaraciones de tipo escalar se aplican a los parámetros, mientras que las declaraciones de tipo de retorno se aplican al valor de retorno de una función o método. Ambas son herramientas importantes para fortalecer la tipificación en PHP y mejorar la calidad del código.