當實參個數<形參個數 時php會發出警告,因為php的解釋機制會認為,有參數被定義了卻沒有被使用,那很可能會影響函數的功能。所以會發出警告。然而,當 實參個數>形參個數 時,php是不會報錯的,它只會取前面的幾個參數,多餘的則將會丟棄。
在PHP中編寫函數,一般情況下調用函數的時候,改變的值都是形參而不是實參.但是如果在形參中加入地址符時候就會改變實參的值,為什麼?
請看下面的例子:
複製代碼 代碼如下:
//編寫一個函數swap(),測試該函數的實參值無改變
function swap($a,$b) {
echo "
進入swqp()函數前
\n";
echo "交換前:形參a=$a,形參b=$b
\n";
$c=$b;
$a=$b;
$b=$c;
echo "交換後:形參a=$a,形參b=$b
\n";
echo "退出swap()函數
\n";
}
$variablea=5;
$variableb=10;
echo "調用swap()函數前: ";
echo "實參a=$variablea,實參b=$variableb
\n";
swap($variablea,$variableb);
echo "調用swap()函數後: ";
echo "實參a=$variablea,實參b=$variableb
\n";
?>
複製代碼 代碼如下:
//測試swap()函數實參的值改變
function swap1(&$a,&$b) {
echo "
進入swap1()函數
\n";
echo "交換前: 形參a=$a,形參b=$b
\n";
$c=$b;
$a=$b;
$b=$c;
echo "交換後: 形參a=$a,形參b=$b
\n";
echo "退出swap()函數
\n";
}
$variablea=5;
$variableb=10;
echo "調用swap1()函數前: ";
echo "實參a=$variablea,實參b=$variableb
\n";
swap1($variablea,$variableb);
echo "調用swap1()函數後: ";
echo "實參a=$variablea,實參b=$variableb
\n";
?>
//上面的兩個例子就是說明,求教了~~~
http://www.bkjia.com/PHPjc/322440.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/322440.htmlTechArticle當實參個數形參個數 時php會發出警告,因為php的解釋機制會認為,有參數被定義了卻沒有被使用,那很可能會影響函數的功能。所以會發出警...