php中函數(shù)的形參與實(shí)參的問題說明
更新時(shí)間:2010年09月01日 10:13:50 作者:
在定義或者使用php函數(shù)時(shí),應(yīng)該注意形參個(gè)數(shù)和實(shí)參個(gè)數(shù)的對應(yīng)關(guān)系。
當(dāng)實(shí)參個(gè)數(shù)<形參個(gè)數(shù) 時(shí)php會發(fā)出警告,因?yàn)閜hp的解釋機(jī)制會認(rèn)為,有參數(shù)被定義了卻沒有被使用,那很可能會影響函數(shù)的功能。所以會發(fā)出警告。然而,當(dāng) 實(shí)參個(gè)數(shù)>形參個(gè)數(shù) 時(shí),php是不會報(bào)錯(cuò)的,它只會取前面的幾個(gè)參數(shù),多余的則將會丟棄。
在PHP中編寫函數(shù),一般情況下調(diào)用函數(shù)的時(shí)候,改變的值都是形參而不是實(shí)參.但是如果在形參中加入地址符時(shí)候就會改變實(shí)參的值,為什么?
請看下面的例子:
<?php
//編寫一個(gè)函數(shù)swap(),測試該函數(shù)的實(shí)參值無改變
function swap($a,$b) {
echo "<p>進(jìn)入swqp()函數(shù)前<br>\n";
echo "交換前:形參a=$a,形參b=$b<br>\n";
$c=$b;
$a=$b;
$b=$c;
echo "交換后:形參a=$a,形參b=$b<br>\n";
echo "退出swap()函數(shù)<br></p>\n";
}
$variablea=5;
$variableb=10;
echo "調(diào)用swap()函數(shù)前: ";
echo "實(shí)參a=$variablea,實(shí)參b=$variableb<br>\n";
swap($variablea,$variableb);
echo "調(diào)用swap()函數(shù)后: ";
echo "實(shí)參a=$variablea,實(shí)參b=$variableb<br>\n";
?>
<?php
//測試swap()函數(shù)實(shí)參的值改變
function swap1(&$a,&$b) {
echo "<p>進(jìn)入swap1()函數(shù)<br>\n";
echo "交換前: 形參a=$a,形參b=$b<br>\n";
$c=$b;
$a=$b;
$b=$c;
echo "交換后: 形參a=$a,形參b=$b<br>\n";
echo "退出swap()函數(shù)<br></p>\n";
}
$variablea=5;
$variableb=10;
echo "調(diào)用swap1()函數(shù)前: ";
echo "實(shí)參a=$variablea,實(shí)參b=$variableb<br>\n";
swap1($variablea,$variableb);
echo "調(diào)用swap1()函數(shù)后: ";
echo "實(shí)參a=$variablea,實(shí)參b=$variableb<br>\n";
?>
//上面的兩個(gè)例子就是說明,求教了~~~
在PHP中編寫函數(shù),一般情況下調(diào)用函數(shù)的時(shí)候,改變的值都是形參而不是實(shí)參.但是如果在形參中加入地址符時(shí)候就會改變實(shí)參的值,為什么?
請看下面的例子:
復(fù)制代碼 代碼如下:
<?php
//編寫一個(gè)函數(shù)swap(),測試該函數(shù)的實(shí)參值無改變
function swap($a,$b) {
echo "<p>進(jìn)入swqp()函數(shù)前<br>\n";
echo "交換前:形參a=$a,形參b=$b<br>\n";
$c=$b;
$a=$b;
$b=$c;
echo "交換后:形參a=$a,形參b=$b<br>\n";
echo "退出swap()函數(shù)<br></p>\n";
}
$variablea=5;
$variableb=10;
echo "調(diào)用swap()函數(shù)前: ";
echo "實(shí)參a=$variablea,實(shí)參b=$variableb<br>\n";
swap($variablea,$variableb);
echo "調(diào)用swap()函數(shù)后: ";
echo "實(shí)參a=$variablea,實(shí)參b=$variableb<br>\n";
?>
復(fù)制代碼 代碼如下:
<?php
//測試swap()函數(shù)實(shí)參的值改變
function swap1(&$a,&$b) {
echo "<p>進(jìn)入swap1()函數(shù)<br>\n";
echo "交換前: 形參a=$a,形參b=$b<br>\n";
$c=$b;
$a=$b;
$b=$c;
echo "交換后: 形參a=$a,形參b=$b<br>\n";
echo "退出swap()函數(shù)<br></p>\n";
}
$variablea=5;
$variableb=10;
echo "調(diào)用swap1()函數(shù)前: ";
echo "實(shí)參a=$variablea,實(shí)參b=$variableb<br>\n";
swap1($variablea,$variableb);
echo "調(diào)用swap1()函數(shù)后: ";
echo "實(shí)參a=$variablea,實(shí)參b=$variableb<br>\n";
?>
//上面的兩個(gè)例子就是說明,求教了~~~
相關(guān)文章
php實(shí)現(xiàn)網(wǎng)頁上一頁下一頁翻頁過程詳解
這篇文章主要介紹了php實(shí)現(xiàn)網(wǎng)頁上一頁下一頁翻頁過程詳解,大致功能就是頁面只顯示幾條信息,按上一頁、下一頁切換內(nèi)容,當(dāng)顯示第一頁時(shí)上一頁和首頁選項(xiàng)不可選,當(dāng)頁面加載到最后一頁時(shí)下一頁和尾頁選項(xiàng)不可選,需要的朋友可以參考下2019-06-06
PHP如何刪除關(guān)聯(lián)數(shù)組中鍵值
在本篇文章里小編給大家整理的是一篇關(guān)于PHP刪除關(guān)聯(lián)數(shù)組中鍵值的方法,有需要的朋友們可以學(xué)習(xí)參考下。2021-08-08
在PHP中利用wsdl創(chuàng)建標(biāo)準(zhǔn)webservice的實(shí)現(xiàn)代碼
網(wǎng)上有現(xiàn)成的nusoap,我沒使用,如果使用了,我可能就不知道PHP是怎么創(chuàng)建webservice的了2011-12-12
php設(shè)計(jì)模式 Decorator(裝飾模式)
動(dòng)態(tài)的給一個(gè)對象添加一些額外的職責(zé),就擴(kuò)展功能而言比生成子類方式更為靈活2011-06-06
PHP中date()日期函數(shù)有關(guān)參數(shù)整理
PHP中date()日期函數(shù)有關(guān)參數(shù)整理,需要的朋友可以參考下。2011-07-07
php 多個(gè)變量指向同一個(gè)引用($b = &$a)用法分析
這篇文章主要介紹了php 多個(gè)變量指向同一個(gè)引用($b = &$a)用法,結(jié)合實(shí)例形式分析了PHP變量引用原理、優(yōu)缺點(diǎn)及相關(guān)操作技巧,需要的朋友可以參考下2019-11-11
php中模擬POST傳遞數(shù)據(jù)的兩種方法分享
php中模擬POST傳遞數(shù)據(jù)的兩種方法分享,有時(shí)候需要模擬提交數(shù)據(jù)方便采集,需要的朋友可以參考下。2011-09-09

