En noviembre 2020, año de la Pandemia Covid 19 se libera la nueva versión de PHP y aquí en este artículo veremos un ejemplo de las Novedades PHP 8 – Named Arguments, concretamente esta característica y en siguientes artículos trataremos otros ejemplos de estas Novedades PHP 8.
Esta funcionalidad de PHP 8, permite pasar variables o argumentos a una función de acuerdo al nombre del parámetro y ayuda en cierta forma a auto documentar estos argumentos y lo mejor es que además éstos sean independientes del orden.
Estoy partiendo de un pequeño ejercicio simple mostrando la forma tradicional de enviar parámetros a una función:
En el ejemplo se pasan 3 valores (0, 100 y 50) y en la función se reciben en las variables en ese orden que se envían ( inicio, número, valor ).
// Argumentos por posición
matriz(0, 100, 50);
function matriz($inicio, $numero, $valor){
echo 'Inicio:'.$inicio.'<br>';
echo 'numero:'.$numero.'<br>';
echo 'valor:'.$valor.'<br>';
echo '----<br>';
}
¿ Qué es lo nuevo entonces de PHP 8 ?
En este artículo hablamos de una de las novedades y es que ahora puedes pasar los parámetros nombrando la variable de la función lo que ayuda a auto documentar mejor el código.
¿ Cuál es la mayor ventaja de esto que yo veo con Named Arguments ?
En mi opinión, una ventaja principal es que con esta sintaxis el orden en que pasamos las variables y/o valores puede ser cualquiera lo que ayuda a ir agregando variables sin el riesgo de asignar valores que no corresponden.
En pocas palabras, no es necesario coincidir el orden de parámetros tanto en el llamado como en la función.
En el siguiente código de ejemplo, los parámetros se pasan denominando la sintaxis como variable:valor.
El código ejemplo completo que se muestra en seguida pasa los 3 valores iniciales (valor:100, numero:45, inicio:0).
// Argumentos por posición
matriz(0, 100, 50);
// argumentos por nombre
// Named Argument
matriz( valor:100, numero:45, inicio:0 );
function matriz($inicio, $numero, $valor){
echo 'Inicio:'.$inicio.'<br>';
echo 'numero:'.$numero.'<br>';
echo 'valor:'.$valor.'<br>';
echo '----<br>';
}
Como ya dijimos anteriormente, el orden de los parámetros que se envían al llamar la función no importa y dará el mismo resultado tal y como se ilustra en el código ejemplo completo:
// Argumentos por posición
matriz(0, 100, 50);
// argumentos por nombre
// Named Argument
matriz( inicio:0, numero:45, valor:100, );
function matriz($inicio, $numero, $valor){
echo 'Inicio:'.$inicio.'<br>';
echo 'numero:'.$numero.'<br>';
echo 'valor:'.$valor.'<br>';
echo '----<br>';
}
Los dos ejemplos anteriores ilustran de una manera muy senciall estas Novedades con PHP 8 – Named Arguments.
En este video tutorial de PHP 8 en Español, se muestra a detalle y con ejemplo esta característica de PHP 8.
¿ Qué te parece esta nueva función ?
Coméntala aquí abajo.