open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
// funcin sprintf() con 3 argumentos
echo sprintf(
"La propiedad '%s' no existe para el objeto '%s'.",
$propiedad, $objeto
);
Este tipo de funciones se han podido crear con PHP desde hace ms de diez aos
gracias a las variables especiales $argv y $argc y con las funciones func_get_args(),
func_get_arg() y func_num_args().
La novedad es que a partir de PHP 5.6, resultar mucho ms fcil crear este tipo de
funciones y el cdigo resultante ser mucho ms legible. Imagina que tu aplicacin
requiere de una funcin llamada media() que calcula la media de todos los nmeros
que se le pasan como argumento:
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
media(1, 2); // resultado: 1.5
media(1, 2, 7, 15); // resultado: 6.25
media(1, 1, 2, 3, 5, 8, 13); // resultado: 4.71
Hasta la versin PHP 5.5, el cdigo de esta funcin sera algo similar a lo siguiente:
function media()
{
$numeros = func_get_args();
function media(...$numeros)
{
return array_sum($numeros) / count($numeros);
}
El argumento varidico indicado con los tres puntos ( ... ) se transforma en un array que
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
contiene todos los argumentos pasados:
media(1) array(1)
media(1, 2) array(1, 2)
media(1, 2, 3) array(1, 2, 3)
Las funciones de PHP pueden mezclar los argumentos normales con el argumento
varidico, como en el siguiente caso en el que la funcin media() establece un valor
mximo mediante su primer argumento:
media(1) array()
media(1, 2) array(2)
media(1, 2, 3) array(2, 3)
Las principales restricciones de esta nueva sintaxis es que cada funcin solamente
puede contener un argumento varidico, siempre debe ser el ltimo argumento de la
funcin y no puede definir un valor por defecto. As que todas estas definiciones de
funciones son incorrectas:
Los nuevos argumentos varidicos tambin soportan el type-hinting de PHP, que consiste
en indicar por delante del argumento su tipo (as, si alguno de los argumentos de la
funcin no es de ese tipo, PHP muestra un error):
miFuncion(array ...$argumentos);
miFuncion(\Symfony\Component\HttpFoundation\Request ...$peticiones);
La segunda funcin del ejemplo anterior obliga a que todos sus argumentos sean una
instancia de la clase Request de Symfony. Si alguno de los argumentos no es de ese
tipo, PHP genera un error. La ventaja de la nueva sintaxis es que esta comprobacin es
automtica, as que no tienes que hacer un bucle que recorra todos los argumentos de
la funcin.
Recursos tiles
La nueva sintaxis para las funciones varidicas ha sido propuesta y desarrollada por el
jovencsimo programador Nikita Popov. A continuacin se enlazan algunos recursos
tiles para conocer en detalle cmo se incorpor la nueva sintaxis en PHP 5.6:
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Propuesta formal: PHP RFC: Syntax for variadic functions
Comentarios
0 Comentarios LibrosWeb
1 Acceder
S el primero en comentar...
S el primero en comentar.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Los generadores de PHP 5.5 Cmo mejorar el rendimiento de las animaciones
1 comentario hace un ao con CSS
Higinio Fuentes Gracias!Lastima que empiezen con 1 comentario hace un ao
PHP 5.5 :( Yoshua Lino Troncoso Como puedo hacer que
animaciones de css3 me consuman menos recursos,
que en dispositivos moviles no me
Fecha de publicacin
10 de octubre de 2013
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
ETIQUETAS POPULARES
SUSCRBETE GRATIS
3.756
2006-2017 LibrosWeb.es Contacto Novedades Condiciones Privacidad
das online
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com