Introducción
Nota: El código fuente completo para el ejemplo de este tutorial puede ser descargado al final del tutorial. Nota: Tratar de hacer esto en C ? Check this out . Cuando se declara una función, el tipo y número de argumentos suelen ser fijos en tiempo de compilación. Pero a veces es necesario para una función para ser capaz de aceptar un número variable de argumentos desconocidos hasta el tiempo de ejecución.
Este tutorial te mostrará cómo crear una función de PHP que puede aceptar un número variable de argumentos.
En pocas palabras
Si usted está buscando simplemente un ejemplo para irse de, no voy a hacerlo esperar. Aquí está un ejemplo de una suma function () que se suma a todos los enteros que se le pasa y devuelve la suma:
<?php
function sum() {
$num = func_num_args();
$total = 0;
for( $i = 0; $i < $num; ++$i ) {
$total += func_get_arg($i);
}
return $total;
}
$total = sum(1, 2, 3, 4, 5);
echo "Total: $total";
?>
}
- <?php
- function sum() {
-
- $num = func_num_args();
-
- $total = 0;
- for( $i = 0; $i < $num; ++$i ) {
- $total += func_get_arg($i);
- }
-
- return $total;
- }
-
- $total = sum(1, 2, 3, 4, 5);
- echo "Total: $total";
- ?>
- }
Cómo funciona
Veamos el código línea por línea:
Declaramos nuestra función. Tenga en cuenta que no necesitamos hacer nada especial aquí, simplemente declarar la función como si fuera una función normal sin parámetros.
func_num_args es una función PHP que devuelve el número de argumentos que fueron pasados a la función. Aquí, la tienda de este valor en una variable llamada
$ num .
$total = 0;
for( $i = 0; $i < $num; ++$i ) {
$total += func_get_arg($i);
}
- $total = 0;
- for( $i = 0; $i < $num; ++$i ) {
- $total += func_get_arg($i);
- }
Ahora bucle a través de la lista de argumentos y añadir sus valores al total.
func_get_arg es una función PHP recupera el valor de la especificada por el índice pasó a ella.
<?php
function sum() {
$args = func_get_args();
$num = func_num_args();
$total = 0;
for( $i = 0; $i < $num; ++$i ) {
$total += $args[$i];
}
return $total;
}
$total = sum(1, 2, 3, 4, 5);
echo "Total: $total";
?>
- <?php
- function sum() {
-
- $args = func_get_args();
- $num = func_num_args();
-
- $total = 0;
- for( $i = 0; $i < $num; ++$i ) {
- $total += $args[$i];
- }
-
- return $total;
- }
-
- $total = sum(1, 2, 3, 4, 5);
- echo "Total: $total";
- ?>
El otro método implica el paso de argumentos a una función como un equipo autónomo de matriz o de matriz asociativa:
function sum( $args ) {
if( !is_array($args) || is_empty($args) ) {
return 0;
}
$num = sizeof($args);
$total = 0;
for( $i = 0; $i < $num; ++$i ) {
$total += $args[$i];
}
return $total;
}
$total = sum(array(1, 2, 3, 4, 5));
echo "Total: $total";
?>
- function sum( $args ) {
-
- if( !is_array($args) || is_empty($args) ) {
- return 0;
- }
-
- $num = sizeof($args);
-
- $total = 0;
- for( $i = 0; $i < $num; ++$i ) {
- $total += $args[$i];
- }
-
- return $total;
- }
- $total = sum(array(1, 2, 3, 4, 5));
- echo "Total: $total";
- ?>
Conclusión
Ahora debe saber cómo crear una función PHP que acepta un número variable de argumentos en tiempo de ejecución. Esta técnica es particularmente útil cuando se crean las funciones de contenedor para las funciones que ya aceptar un número variable de argumentos, como printf (). Esto se demuestra en mi otro tutorial,
Escribir una printf personalizado () Envoltura de funciones en PHP .
Yo siempre bienvenidos preguntas o comentarios acerca de este tutorial. Basta con enviar una respuesta o PM me im glad to help!
MultipleArgumentsPHP.zip
(465 Bytes) 375 veces
Complete source code for the sum() example used in this tutorial.