可以解释我这段代码是如何工作的
<?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)。给数组赋值?
这是基本但有点乱!
答案 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;
}
}