php循环,func_get_arg(0)

时间:2018-03-21 15:18:59

标签: php function indexing func

可以解释我这段代码是如何工作的

<?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的循环,不应该只发布Alex,詹姆斯? func_get_arg() as $key => value是什么(as)。给数组赋值?

这是基本但有点乱!

2 个答案:

答案 0 :(得分:2)

这就是它的工作原理:

<?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'));

答案 1 :(得分:0)

在使用foreach {}循环之前。你已经回到位于0位置的'Alex'。

$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;
}
}