电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:150日期: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
相關文章:
主站蜘蛛池模板: 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | QQ房产导航-免费收录优秀房地产网站_房地产信息网 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 气动机械手-搬运机械手-气动助力机械手-山东精瑞自动化设备有限公司 | 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 西门子气候补偿器,锅炉气候补偿器-陕西沃信机电工程有限公司 | 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | 影视模板素材_原创专业影视实拍视频素材-8k像素素材网 | 玉米深加工设备-玉米深加工机械-新型玉米工机械生产厂家-河南粮院机械制造有限公司 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 江苏全风,高压风机,全风环保风机,全风环形高压风机,防爆高压风机厂家-江苏全风环保科技有限公司(官网) | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 | 北京模型公司-军事模型-工业模型制作-北京百艺模型沙盘公司 | 成都治疗尖锐湿疣比较好的医院-成都治疗尖锐湿疣那家医院好-成都西南皮肤病医院 | 耐磨陶瓷管道_除渣器厂家-淄博浩瀚陶瓷科技有限公司 | 北京租车牌|京牌指标租赁|小客车指标出租 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 新疆乌鲁木齐网站建设-乌鲁木齐网站制作设计-新疆远璨网络 | 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | pos机办理,智能/扫码/二维码/微信支付宝pos机-北京万汇通宝商贸有限公司 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 药品冷藏箱厂家_低温冰箱_洁净工作台-济南欧莱博电子商务有限公司官网 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | 螺杆真空泵_耐腐蚀螺杆真空泵_水环真空泵_真空机组_烟台真空泵-烟台斯凯威真空 | 富森高压水枪-柴油驱动-养殖场高压清洗机-山东龙腾环保科技有限公司 | 电梯装饰-北京万达中意电梯装饰有限公司| 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 粉丝机械,粉丝烘干机,粉丝生产线-招远市远东粉丝机械有限公司 | 山东氧化铁红,山东铁红-淄博科瑞化工有限公司 | 呼末二氧化碳|ETCO2模块采样管_气体干燥管_气体过滤器-湖南纳雄医疗器械有限公司 | 保镖公司-私人保镖-深圳保镖公司【环宇兄弟保镖】 |