Type Hinting en PHP: Guía completa para principiantes

02-02-2026 | PHP OOP 2 min

Type hinting es lo que nos permite especificar el tipo de dato que debe tener un argumento en una función o método. Ya lo hemos visto en otros artículos de esta web, pero vamos a dedicarle su espacio propio para explicarlo mejor.

Los tipos podrían ser: array, callable, clases o interfaces.

Callable es una referencia a algo que se pueda llamar. Puede ser el nombre de una función, una matriz que contenga un objeto y el nombre de un método, o una función anónima (closure).

Su objetivo es mejorar la legibilidad del código y evitar errores.

Ejemplo de uso

Normalmente se usa en métodos de clases, recuerda siempre que la idea es forzar a un método a aceptar sólo argumentos de un tipo concreto y al mismo tiempo documentar el código. Podemos decir qué tipo de dato esperamos y que tipo de dato se retornará.

class User
{
    // ...
}

class Post
{
    public function setAuthor(User $user): void
    {
        // ...
    }
}

$author = new User();

$post = new Post();
$post->setAuthor($author);

Como puedes ver, aquí forzamos que el argumento que se pasa a la función setAuthor() sea un objeto de la clase User. Si el $author no fuera un objeto, no se podría trabajar con setAuthor().

Veamos cómo provoca un error:

$author = 'Author';

$post = new Post();
$post->setAuthor($author);

Al ser un string, obtendremos un error: Fatal error: Uncaught TypeError: Post::setAuthor(): Argument #1 ($user) must be of type User, directamente dice que el argumento debe ser de tipo User y hemos pasado un string.

class Post
{
    public function setAuthor(string $author): void
    {
        // ...
    }

    public function setTags(array $tags): void
    {
        // ...
    }

    public function getTags(): array
    {
        // ...
    }
}

En este otro ejemplo, forzamos que el argumento de setAuthor() sea un string, el de setTags() un array, y que getTags() retorne un array.

Con void indicamos que el método no retorna ningún valor. Significa vacío.

Última actualización: 02-02-2026

Tips de Laravel y PHP

Te enviaré únicamente temas profesionales de programación cada domingo.

    Puedes cancelar en cualquier momento.