亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

PHP函數參數傳遞的方式整理

瀏覽:111日期:2022-09-11 10:21:01

在調用函數時,需要向函數傳遞參數,被傳入函數的參數稱為實參,而函數定義的參數稱為形參。而向函數傳遞參數的方式有四種,分別是值傳遞、引用傳遞、默認參數和可變長度參數。

1. 值傳遞

值傳遞是 PHP 中函數的默認傳值方式,也稱為“拷貝傳值”。顧名思義值傳遞的方式會將實參的值復制一份再傳遞給函數的形參,所以在函數中操作參數的值并不會對函數外的實參造成影響。因此如果不希望函數修改實參的值,就可以通過值傳遞的方式。

【示例】下面定義一個簡單的函數,函數有兩個參數,在函數中交換參數的值。

<?php function swap($a, $b){ echo ’函數內,交換前 $a = ’.$a.’, $b = ’.$b.’<br>’; $temp = $a; $a = $b; $b = $temp; echo ’函數內,交換后 $a = ’.$a.’, $b = ’.$b.’<br>’; } $x = 5; $y = 7; echo ’函數外,交換前 $x = ’.$x.’, $y = ’.$y.’<br>’; swap($x, $y); echo ’函數外,交換后 $x = ’.$x.’, $y = ’.$y;?>

運行結果如下:

函數外,交換前 $x = 5, $y = 7函數內,交換前 $a = 5, $b = 7函數內,交換后 $a = 7, $b = 5函數外,交換后 $x = 5, $y = 7

通過運行結果可以看到,在函數內,數值確實是交換了,而在函數外部,數值卻沒有變化。因此可以說,函數的值傳遞只是傳遞變量的副本。那么要是想讓函數能夠操作函數外實參的話,就需要使用引用傳遞的方式了。

2. 引用傳遞

參數的引用傳遞就是把實參的內存地址復制一份,然后傳遞給函數的形參,實參和形參都指向同一個內存地址,因此函數對形參的操作,會影響到函數外的實參。

按引用傳遞就是將實參的內存地址傳遞到函數的形參中。因此實參和形參指向的是同一個內存地址。這時在函數內部的所有操作都會影響到函數外實參的值。引用傳遞的方式就是在值傳遞的基礎上加上一個&符號,如下所示:

function name (&參數1, &參數2, ..., &參數3) { ... }

【示例】將上面示例的代碼略作調整,使用引用傳遞的方式向 swap 函數中傳遞參數,代碼如下所示:

<?php function swap(&$a, &$b){ echo ’函數內,交換前 $a = ’.$a.’, $b = ’.$b.’<br>’; $temp = $a; $a = $b; $b = $temp; echo ’函數內,交換后 $a = ’.$a.’, $b = ’.$b.’<br>’; } $x = 5; $y = 7; echo ’函數外,交換前 $x = ’.$x.’, $y = ’.$y.’<br>’; swap($x, $y); echo ’函數外,交換后 $x = ’.$x.’, $y = ’.$y;?>

運行結果如下:

函數外,交換前 $x = 5, $y = 7函數內,交換前 $a = 5, $b = 7函數內,交換后 $a = 7, $b = 5函數外,交換后 $x = 7, $y = 5

3. 默認參數

默認參數就是給函數的某個或多個形式參數指定一個默認的值,如果調用函數時不傳入對應的值,那么函數就會使用這個默認值,這樣可以避免調用時出現沒有參數的錯誤,也可以使一些程序顯得更加合理。如果傳入對應的參數,就會替換這個默認值。

函數的默認參數如下所示:

function name ($str = ’C語言中文網’, $url) { echo $str; }

其中,形式參數 $str 后面的“C語言中文網”就是它的默認值,形參與默認值之間需要使用=連接。

【示例】下面來定義一個具有默認參數的函數,如下所示:

<?php function add($a, $b=56){ echo $a.’ + ’.$b.’ = ’.($a+$b).’<br>’; } add(11); add(37, 29);?>

運行結果如下:

11 + 56 = 6737 + 29 = 66

默認參數也可以是多個,而且默認參數必須放在非默認參數右邊,并且指定默認參數的值必須是一個具體的值,如數字、字符串,而不能是一個變量。

【示例】下面來定義一個具有多個默認參數的函數,如下所示:

<?php function add($a, $b=33, $c=57){ echo $a.’ + ’.$b.’ + ’.$c.’ = ’.($a+$b+$c).’<br>’; } add(11); add(31, 22); add(64, 9, 7);?>

運行結果如下:

11 + 33 + 57 = 10131 + 22 + 57 = 11064 + 9 + 7 = 80

4. 可變長度參數

在 PHP 5.6 及以后的版本中,函數的形式參數可使用…來表示函數可接受一個可變數量的參數,可變參數將會被當作一個數組傳遞給函數。示例如下:

<?php function test(...$arr){ print_r($arr); } echo ’<pre>’; test(1, 2, 3, 4); test(5, 6, 7, 8, 9, 10);?>

運行結果如下:

Array([0] => 1[1] => 2[2] => 3[3] => 4)Array([0] => 5[1] => 6[2] => 7[3] => 8[4] => 9[5] => 10)

到此這篇關于PHP函數參數傳遞的方式整理的文章就介紹到這了,更多相關PHP函數參數傳遞的四種方式內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: PHP
相關文章:
主站蜘蛛池模板: 色男人影院 | 国产热视频 | 成人在线观看一区 | 日本不卡在线一区二区三区视频 | 8090碰成年女人免费碰碰尤物 | 婷婷丁香激情五月 | mimiai网址| 美国免费黄色片 | 日本亚洲乱码中文字幕影院 | 亚洲国产精品a在线 | 亚洲国产精品成人午夜在线观看 | 国产精品视频播放 | 日韩一区二区免费看 | 国产一区二区不卡 | 成人无遮挡免费网站视频在线观看 | 欧美桃色| 日本黄色高清 | 国产福利视频一区二区 | 久久久美女 | 国产偷国产偷亚洲高清在线 | 高清一级做a爱过程免费视频 | 亚洲影视一区 | 麻豆国产在线观看一区二区 | 成人看片毛片免费播放器 | 77yyxf影音先锋 | 黄色美女毛片 | 亚洲美女色成人综合 | 久久综合久久美利坚合众国 | 欧美亚洲一区二区三区 | 国产在线视频在线 | 小明永久免费视频 | 久久七国产精品 | 国产高清不卡一区二区 | 成人短视频在线观看 | 成年男女男免费视频网站不卡 | 草草视频免费在线观看 | 欧美国产日韩做一线 | 色婷婷亚洲五月色综合色 | 日本黄色高清网站 | 蜜柚视频在线看2019 | 亚洲精品一区二区三区r |