может кто-нибудь объяснить мне, как работает этот код
<?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
, дать массиву имена для значения?
это простой, но немного грязный!
Вот как это работает:
<?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'));
до того, как вы использовали цикл 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;
}
}