функция — php loop, func_get_arg (0)

может кто-нибудь объяснить мне, как работает этот код

<?php
function append($initial)
{
$result=func_get_arg(0);
foreach(func_get_arg()as $key=>value){
if($key>=1)
{
$result .=' '.$value;
}
}
return $result;
echo append('Alex,'James','Garrett');
?>

почему у нас есть 0 на func_get_arg(0)и это цикл есть 0,1,2 Разве это не должно только отправить Алекс, Джеймс?
и что (как) делает func_get_arg() as $key => value, дать массиву имена для значения?

это простой, но немного грязный!

0

Решение

Вот как это работает:

<?php
function append($initial)
{
// Get the first argument - func_get_arg gets any argument of the function
$result=func_get_arg(0);

// Get the remaining arguments and concat them in a string
foreach(func_get_args() as $key=>value) {
// Ignore the first (0) argument, that is already in the string
if($key>=1)
{
$result .=' '.$value;
}
}
// Return it
return $result;
}

// Call the function
echo append('Alex,'James','Garrett');
?>

Эта функция будет делать то же самое, что:

echo implode(' ', array('Alex', 'James', 'Garrett'));
2

Другие решения

до того, как вы использовали цикл foreach {}. Вы вернули «Алекс», который находится в позиции 0.

$result=func_get_arg(0);
foreach(){

}
return $result; //It returns Alex

//foreach() loop
foreach(func_get_arg()as $key=>value){
/*Its looping and only printing after
the key gets to 1 and then the loop goes to 2.Eg: $result[$key]=> $value; */
if($key>=1)
{
$result .=' '.$value;
}
}
0

По вопросам рекламы [email protected]