php中函數(shù)的形參與實參的問題說明
更新時間:2010年09月01日 10:13:50 作者:
在定義或者使用php函數(shù)時,應該注意形參個數(shù)和實參個數(shù)的對應關系。
當實參個數(shù)<形參個數(shù) 時php會發(fā)出警告,因為php的解釋機制會認為,有參數(shù)被定義了卻沒有被使用,那很可能會影響函數(shù)的功能。所以會發(fā)出警告。然而,當 實參個數(shù)>形參個數(shù) 時,php是不會報錯的,它只會取前面的幾個參數(shù),多余的則將會丟棄。
在PHP中編寫函數(shù),一般情況下調(diào)用函數(shù)的時候,改變的值都是形參而不是實參.但是如果在形參中加入地址符時候就會改變實參的值,為什么?
請看下面的例子:
<?php
//編寫一個函數(shù)swap(),測試該函數(shù)的實參值無改變
function swap($a,$b) {
echo "<p>進入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 "實參a=$variablea,實參b=$variableb<br>\n";
swap($variablea,$variableb);
echo "調(diào)用swap()函數(shù)后: ";
echo "實參a=$variablea,實參b=$variableb<br>\n";
?>
<?php
//測試swap()函數(shù)實參的值改變
function swap1(&$a,&$b) {
echo "<p>進入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 "實參a=$variablea,實參b=$variableb<br>\n";
swap1($variablea,$variableb);
echo "調(diào)用swap1()函數(shù)后: ";
echo "實參a=$variablea,實參b=$variableb<br>\n";
?>
//上面的兩個例子就是說明,求教了~~~
在PHP中編寫函數(shù),一般情況下調(diào)用函數(shù)的時候,改變的值都是形參而不是實參.但是如果在形參中加入地址符時候就會改變實參的值,為什么?
請看下面的例子:
復制代碼 代碼如下:
<?php
//編寫一個函數(shù)swap(),測試該函數(shù)的實參值無改變
function swap($a,$b) {
echo "<p>進入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 "實參a=$variablea,實參b=$variableb<br>\n";
swap($variablea,$variableb);
echo "調(diào)用swap()函數(shù)后: ";
echo "實參a=$variablea,實參b=$variableb<br>\n";
?>
復制代碼 代碼如下:
<?php
//測試swap()函數(shù)實參的值改變
function swap1(&$a,&$b) {
echo "<p>進入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 "實參a=$variablea,實參b=$variableb<br>\n";
swap1($variablea,$variableb);
echo "調(diào)用swap1()函數(shù)后: ";
echo "實參a=$variablea,實參b=$variableb<br>\n";
?>
//上面的兩個例子就是說明,求教了~~~
相關文章
Swoole 5將移除自動添加Event::wait()特性詳解
這篇文章主要給大家介紹了關于Swoole 5將移除自動添加Event::wait()特性的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Swoole5具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-07-07基于php導出到Excel或CSV的詳解(附utf8、gbk 編碼轉換)
本篇文章是對php導出到Excel或CSV(附utf8、gbk 編碼轉換)進行了詳細的分析介紹,需要的朋友參考下2013-06-06PHP pthreads v3下同步處理synchronized用法示例
這篇文章主要介紹了PHP pthreads v3下同步處理synchronized用法,結合實例形式分析了PHP pthreads v3下同步處理synchronized原理、使用方法及相關操作注意事項,需要的朋友可以參考下2020-02-02