Dado un conjunto de argumentos cuya longitud se desconoce en la actualidad, veremos cómo una función puede trabajar con estos números desconocidos de argumentos cuya cantidad variará según el requisito.
Retomaremos cada palabra una por una para entender profundamente el tema que estamos tratando.
- Variable: Es el número de argumentos que van cambiando.
- Longitud: Se refiere al número de argumentos.
- Argumento: Hace referencia a la entrada pasada a una función.
Ahora, el punto de interés se encuentra en la lista de palabras, todos los argumentos pasados en su llamada irán a la función como una array. Los valores se recuperarán como si fueran de una array.
Método de Acceso a Argumentos Variables: En esto, la función está hecha para aceptar argumentos variables y trabajar en consecuencia. La variable que tiene que tener múltiples números de argumentos se declara con “…” (puntos triples).
- Ejemplo:
<?php
function
sum(...
$numbers
) {
$res
= 0;
foreach
(
$numbers
as
$n
) {
$res
+=
$n
;
}
return
$res
;
}
echo
(sum(1,2,3,4).
"\n"
);
echo
(sum(5,6,1));
?>
- Producción:
10 12
Método de proporcionar argumentos variables: también puede usar «…» (puntos triples) al llamar a funciones para desempaquetar una array o variable transversal o literal en la lista de argumentos.
- Ejemplo:
<?php
function
add(
$a
,
$b
) {
return
$a
+
$b
;
}
echo
add(...[1, 2]).
"\n"
;
$a
= [1, 2];
echo
add(...
$a
);
?>
- Producción:
3 3
Escriba el método de argumentos variables sugeridos: también es posible agregar un tipo de sugerencia antes del … token. Si esto está presente, entonces todos los argumentos capturados por… deben ser objetos de la clase sugerida.
- Ejemplo:
<?php
function
total_intervals(
$unit
, DateInterval ...
$intervals
) {
$time
= 0;
foreach
(
$intervals
as
$interval
) {
$time
+=
$interval
->
$unit
;
}
return
$time
;
}
$a
=
new
DateInterval(
'P1D'
);
$b
=
new
DateInterval(
'P2D'
);
echo
total_intervals(
'd'
,
$a
,
$b
).
' days'
;
?>
- Producción:
3 days
Publicación traducida automáticamente
Artículo escrito por vanshikagoyal43 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA