PHP 8.5 introduce el operador pipe `|>`, que pasa el resultado de la expresión izquierda como primer argumento al callable de la derecha. El ejemplo clásico es la sanitización de entradas: en lugar de anidar `strtolower(str_replace(..., trim($input)))`, que se lee en orden inverso a la ejecución, ahora se escribe la cadena de izquierda a derecha.
<?php
function makeSlug(string $input): string
{
return $input
|> trim(...)
|> (fn($s) => str_replace(' ', '-', $s))
|> strtolower(...)
|> (fn($s) => preg_replace('/[^a-z0-9-]+/', '', $s));
}El operador requiere un callable a la derecha, no una llamada de función inmediata. Para funciones de un argumento se usa la sintaxis de callable de primera clase de PHP 8.1: `trim(...)` crea una closure, mientras que `trim()` se ejecutaría inmediatamente y fallaría. Los opcodes compilados coinciden con los de las llamadas anidadas, no hay sobrecoste en tiempo de ejecución.
Las funciones con varios argumentos deben envolverse en funciones flecha, que requieren obligatoriamente paréntesis para evitar errores de sintaxis. El autor señala que esta verbosidad es la queja más común; PHP 8.6 debería traer aplicación parcial de funciones para resolverlo.
Los métodos de instancia no se pueden pipar directamente y necesitan funciones flecha, mientras que los métodos estáticos funcionan con la sintaxis de callable de primera clase. Las funciones void como `var_dump` rompen la cadena al pasar null al siguiente paso. La sintaxis no es retrocompatible con PHP 8.4 o anterior. PhpStorm y VS Code con Intelephense ya la soportan.




Comentarios
Aún no hay comentarios — escribe el primero.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
¿No llega nada? Mira en la carpeta de spam — y marca el correo como «No es spam» para que la próxima vez llegue directo.