首先聲明,本干貨的觀點僅代表個人觀點,拿出來和大家嘮叨嘮叨。
我們注重客戶提出的每個要求,我們充分考慮每一個細節(jié),我們積極的做好成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計服務(wù),我們努力開拓更好的視野,通過不懈的努力,創(chuàng)新互聯(lián)贏得了業(yè)內(nèi)的良好聲譽,這一切,也不斷的激勵著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計,微信小程序開發(fā),網(wǎng)站開發(fā),技術(shù)開發(fā)實力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術(shù)開發(fā)工程師。
最近在寫代碼的時候,發(fā)現(xiàn)了一個有趣的事情。就是我創(chuàng)建了一個新的函數(shù),但是因為各種需求,各種功能設(shè)計的原因,函數(shù)的形參數(shù)目達到了10多個之多。
而這個時候,由于本函數(shù)是一個公共函數(shù),所以被調(diào)用的地方十分多,當這個函數(shù)的形參需要增刪改的時候,可謂牽一發(fā)而動全身(當然,出現(xiàn)這種情況就應(yīng)該想到是不是設(shè)計有問題了,耦合度這么高,但這次先不談這個),所以針對這種情況,我分別思考了3種最常用的傳參方式。
直接傳參,每個參數(shù)一個個的排好隊寫上,例如:
圖片來自睿江云計算
優(yōu)點:
1. 傳入的參數(shù)清晰,明確可以知道傳入?yún)?shù)有多少個,分別代表什么意思,從語義上一目了然。
2. 調(diào)用方便,調(diào)用者直接傳參,無需對參數(shù)進行處理加工。
3. 對新手來說更加友好,更容易理解。
缺點:
1. 形參太多,代碼失去了美感,太隨性了。
2. 當某個參數(shù)需要改動的時候,簡直是牽一發(fā)而動全身,比如$param5改為選填參數(shù),并且默認值為test:
圖片出自睿江云計算
缺點很明顯,這個時候由于php參數(shù)順序的問題,選填參數(shù)必須在最后,所以所有調(diào)用者都需要起碼把原來的param5去除,放在參數(shù)最后位置,改動代價高。
總結(jié):當參數(shù)少的時候,可以使用直接一個個參數(shù)傳遞,這樣是最好的,但是當參數(shù)過多,或者改動需求大的時候,這種方法無疑是繁重的。
所以針對上面這種,當參數(shù)數(shù)量過多的時候,可以使用方法二:
把參數(shù)組合成一個數(shù)組的形式,整一個數(shù)組當做參數(shù)進行傳遞。例如:
圖片出自睿江云計算
優(yōu)點:
1. 代碼更加整潔了。
2. 代碼更加靈活,現(xiàn)在就算有一個參數(shù)需要改動,也無需修改函數(shù)的參數(shù),只需要在調(diào)用者處增加參數(shù)即可。
缺點:
1. 沒有了php的語法限制。例如沒有了string這種的類型限制,沒有了帶默認值的選填參數(shù)的語法限制。這樣子就需要你做多一層參數(shù)的檢查。
2. 參數(shù)可讀性差了。函數(shù)的數(shù)組里面有哪些參數(shù)是不能通過形參看出來的,需要查看調(diào)用者的數(shù)組組成。
總結(jié):總體來說這種方法可以解決第一種傳參方式的弊端,但是也自身帶來了更加大的弊端,參數(shù)的限制需要另外增加一層鉤子去處理,可以說是性價比比較低的一種方法。
綜合上面兩種方法的利弊,我總結(jié)出第三種傳參方式:
傳遞一個數(shù)據(jù)結(jié)構(gòu)對象當做參數(shù),例如:
圖片出自睿江云計算
優(yōu)點:
1. 參數(shù)為一個數(shù)據(jù)結(jié)構(gòu),保證數(shù)據(jù)的完整性。就是傳進來的數(shù)據(jù)結(jié)構(gòu)必然能包含所需的參數(shù)。
2. 當參數(shù)需要更加或者減少的時候,只需要修改數(shù)據(jù)結(jié)構(gòu)模型的對象屬性即可。
3. 把數(shù)據(jù)的控制和限制可以統(tǒng)一放在模型層進行處理。
缺點:
1.可能需要多個數(shù)據(jù)結(jié)構(gòu)模型。
總結(jié):總體來說這種方法可以比較全面的解決第一第二種方法的弊端,就是需要建立多種數(shù)據(jù)結(jié)構(gòu)模型,增加了代碼量。
以上就是介紹的3種傳參的種類,這是一個細節(jié)性,場景性的問題,不知道能不能明白個中意思呢?
網(wǎng)頁題目:不得不知道的三種簡單實用的傳參方式
URL標題:http://www.rwnh.cn/article32/jeeopc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、電子商務(wù)、手機網(wǎng)站建設(shè)、外貿(mào)建站、App設(shè)計、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)