2014-10-06 63 views
-1

我有一個函數如下:傳遞多個值的函數PHP

function foo($value) 
{ 
    echo "print: '".$value."' " 
} 

我想傳遞一個數組作爲$value,因爲我需要打印變量數量的值。我怎麼能通過他們?這是我做了什麼,它不工作:

function foo($value) 
{ 
    $no = sizeof($value); 
    for($i=0;$i<$no;$i++) 
    { 
     //The if statement here prevents printing a comma at the end 
     if($i != ($no-1)) 

     echo $value[i].", "; 

     else echo $value[i] ; 
    } 
} 
+2

而不是使用'if'語句,只需使用'implode'將您的數組加入:'implode(「,」,$ value);' – 2014-10-06 14:24:55

回答

4

簡單。不要使用循環。所有你正在做的是隨地吐痰你的陣列作爲一個逗號分隔的列表,所以:

所有的
function foo ($array_of_values) { 
    echo implode(',', $array_of_values); 
} 
+0

是的, ķ。非常感謝 – hzjw 2014-10-06 14:40:51

1

首先你i之前在循環忘了$同時打印。

function foo($value) 
{ 
$no = sizeof($value); 
    for($i=0;$i<$no;$i++) 
    { 
     if($i != ($no-1)) 
     echo $value[$i].", "; 

     else echo $value[$i] ; 
    } 
} 

其次,更好的方式來做到這一點,使用implode

function foo($values) 
{ 
    echo implode(',', $values); 
} 
0

更好地利用foreach,並檢查是否$值is set 或者如果你喜歡你的變種支票$沒有

$no = sizeof($value); 
if($no === 0) { 
    echo "parameter is empty"; 
    return; 
}