午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

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

瀏覽:242日期: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
相關文章:
主站蜘蛛池模板: 国产免费一区二区三区免费视频 | 97色在线视频 | 国产精品自产拍在线观看 | 91精品国产综合久久久久久久 | 青青草97国产精品免费观看 | 手机成人在线视频 | xxxx日韩 | 成年人黄色免费视频 | 一区影视| 日本在线一区二区 | 午夜色影院| 久久五十路 | 超碰在线97观看 | 黄色一级免费视频 | 国产精品成av人在线视午夜片 | 二区在线播放 | 中文字幕第27页 | 99久久久久久久久 | 成人午夜免费在线观看 | 69性视频| 91精品综合久久久久久五月天 | 热久久国产精品 | 97免费在线 | 国产精品九九九九九九 | 国产九九在线 | 欧洲精品视频在线观看 | 日韩三级在线免费观看 | 伊人久久一区二区三区 | 91视频看片 | 中文字幕在线网 | 欧美激情 亚洲 | 午夜毛片在线观看 | 性欧美18一19性猛交 | 青青操视频在线观看 | 人人澡人人插 | 在线免费观看国产视频 | 欧美精品日韩精品 | 精品久久久av | 国产操视频 | 毛片毛片毛片 | 亚洲成av人片在线观看无 |