php中函數的形參與實參的問題說明

來源:互聯網
上載者:User

當實參個數<形參個數 時php會發出警告,因為php的解釋機制會認為,有參數被定義了卻沒有被使用,那很可能會影響函數的功能。所以會發出警告。然而,當 實參個數>形參個數 時,php是不會報錯的,它只會取前面的幾個參數,多餘的則將會丟棄。

在PHP中編寫函數,一般情況下調用函數的時候,改變的值都是形參而不是實參.但是如果在形參中加入地址符時候就會改變實參的值,為什麼?

請看下面的例子: 複製代碼 代碼如下:<?php
//編寫一個函數swap(),測試該函數的實參值無改變
function swap($a,$b) {
echo "<p>進入swqp()函數前<br>\n";
echo "交換前:形參a=$a,形參b=$b<br>\n";
$c=$b;
$a=$b;
$b=$c;
echo "交換後:形參a=$a,形參b=$b<br>\n";
echo "退出swap()函數<br></p>\n";
}
$variablea=5;
$variableb=10;
echo "調用swap()函數前: ";
echo "實參a=$variablea,實參b=$variableb<br>\n";
swap($variablea,$variableb);
echo "調用swap()函數後: ";
echo "實參a=$variablea,實參b=$variableb<br>\n";
?>

複製代碼 代碼如下:<?php
//測試swap()函數實參的值改變
function swap1(&$a,&$b) {
echo "<p>進入swap1()函數<br>\n";
echo "交換前: 形參a=$a,形參b=$b<br>\n";
$c=$b;
$a=$b;
$b=$c;
echo "交換後: 形參a=$a,形參b=$b<br>\n";
echo "退出swap()函數<br></p>\n";
}

$variablea=5;
$variableb=10;
echo "調用swap1()函數前: ";
echo "實參a=$variablea,實參b=$variableb<br>\n";
swap1($variablea,$variableb);
echo "調用swap1()函數後: ";
echo "實參a=$variablea,實參b=$variableb<br>\n";
?>

//上面的兩個例子就是說明,求教了~~~

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.