不得不知道的三種簡(jiǎn)單實(shí)用的傳參方式-創(chuàng)新互聯(lián)

首先聲明,本干貨的觀點(diǎn)僅代表個(gè)人觀點(diǎn),拿出來(lái)和大家嘮叨嘮叨。

創(chuàng)新互聯(lián)公司是一家專(zhuān)注于成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)與策劃設(shè)計(jì),安定網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:安定等地區(qū)。安定做網(wǎng)站價(jià)格咨詢(xún):13518219792

最近在寫(xiě)代碼的時(shí)候,發(fā)現(xiàn)了一個(gè)有趣的事情。就是我創(chuàng)建了一個(gè)新的函數(shù),但是因?yàn)楦鞣N需求,各種功能設(shè)計(jì)的原因,函數(shù)的形參數(shù)目達(dá)到了10多個(gè)之多。

而這個(gè)時(shí)候,由于本函數(shù)是一個(gè)公共函數(shù),所以被調(diào)用的地方十分多,當(dāng)這個(gè)函數(shù)的形參需要增刪改的時(shí)候,可謂牽一發(fā)而動(dòng)全身(當(dāng)然,出現(xiàn)這種情況就應(yīng)該想到是不是設(shè)計(jì)有問(wèn)題了,耦合度這么高,但這次先不談這個(gè)),所以針對(duì)這種情況,我分別思考了3種最常用的傳參方式。

  第一種

直接傳參,每個(gè)參數(shù)一個(gè)個(gè)的排好隊(duì)寫(xiě)上,例如:

不得不知道的三種簡(jiǎn)單實(shí)用的傳參方式

          圖片來(lái)自睿江云計(jì)算

優(yōu)點(diǎn):

1. 傳入的參數(shù)清晰,明確可以知道傳入?yún)?shù)有多少個(gè),分別代表什么意思,從語(yǔ)義上一目了然。

2. 調(diào)用方便,調(diào)用者直接傳參,無(wú)需對(duì)參數(shù)進(jìn)行處理加工。

3. 對(duì)新手來(lái)說(shuō)更加友好,更容易理解。

缺點(diǎn):

1. 形參太多,代碼失去了美感,太隨性了。

2. 當(dāng)某個(gè)參數(shù)需要改動(dòng)的時(shí)候,簡(jiǎn)直是牽一發(fā)而動(dòng)全身,比如$param5改為選填參數(shù),并且默認(rèn)值為test:

   不得不知道的三種簡(jiǎn)單實(shí)用的傳參方式

                圖片出自睿江云計(jì)算

缺點(diǎn)很明顯,這個(gè)時(shí)候由于php參數(shù)順序的問(wèn)題,選填參數(shù)必須在最后,所以所有調(diào)用者都需要起碼把原來(lái)的param5去除,放在參數(shù)最后位置,改動(dòng)代價(jià)高。

總結(jié):當(dāng)參數(shù)少的時(shí)候,可以使用直接一個(gè)個(gè)參數(shù)傳遞,這樣是最好的,但是當(dāng)參數(shù)過(guò)多,或者改動(dòng)需求大的時(shí)候,這種方法無(wú)疑是繁重的。

所以針對(duì)上面這種,當(dāng)參數(shù)數(shù)量過(guò)多的時(shí)候,可以使用方法二:

  第二種

把參數(shù)組合成一個(gè)數(shù)組的形式,整一個(gè)數(shù)組當(dāng)做參數(shù)進(jìn)行傳遞。例如:

   不得不知道的三種簡(jiǎn)單實(shí)用的傳參方式

              圖片出自睿江云計(jì)算

優(yōu)點(diǎn):

1. 代碼更加整潔了。

2. 代碼更加靈活,現(xiàn)在就算有一個(gè)參數(shù)需要改動(dòng),也無(wú)需修改函數(shù)的參數(shù),只需要在調(diào)用者處增加參數(shù)即可。

缺點(diǎn):

1. 沒(méi)有了php的語(yǔ)法限制。例如沒(méi)有了string這種的類(lèi)型限制,沒(méi)有了帶默認(rèn)值的選填參數(shù)的語(yǔ)法限制。這樣子就需要你做多一層參數(shù)的檢查。

2. 參數(shù)可讀性差了。函數(shù)的數(shù)組里面有哪些參數(shù)是不能通過(guò)形參看出來(lái)的,需要查看調(diào)用者的數(shù)組組成。

總結(jié):總體來(lái)說(shuō)這種方法可以解決第一種傳參方式的弊端,但是也自身帶來(lái)了更加大的弊端,參數(shù)的限制需要另外增加一層鉤子去處理,可以說(shuō)是性?xún)r(jià)比比較低的一種方法。

綜合上面兩種方法的利弊,我總結(jié)出第三種傳參方式:

   第三種

傳遞一個(gè)數(shù)據(jù)結(jié)構(gòu)對(duì)象當(dāng)做參數(shù),例如:

   不得不知道的三種簡(jiǎn)單實(shí)用的傳參方式

                              圖片出自睿江云計(jì)算

優(yōu)點(diǎn):

1. 參數(shù)為一個(gè)數(shù)據(jù)結(jié)構(gòu),保證數(shù)據(jù)的完整性。就是傳進(jìn)來(lái)的數(shù)據(jù)結(jié)構(gòu)必然能包含所需的參數(shù)。

2. 當(dāng)參數(shù)需要更加或者減少的時(shí)候,只需要修改數(shù)據(jù)結(jié)構(gòu)模型的對(duì)象屬性即可。

3. 把數(shù)據(jù)的控制和限制可以統(tǒng)一放在模型層進(jìn)行處理。

缺點(diǎn):

1.可能需要多個(gè)數(shù)據(jù)結(jié)構(gòu)模型。

總結(jié):總體來(lái)說(shuō)這種方法可以比較全面的解決第一第二種方法的弊端,就是需要建立多種數(shù)據(jù)結(jié)構(gòu)模型,增加了代碼量。

以上就是介紹的3種傳參的種類(lèi),這是一個(gè)細(xì)節(jié)性,場(chǎng)景性的問(wèn)題,不知道能不能明白個(gè)中意思呢?

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

分享標(biāo)題:不得不知道的三種簡(jiǎn)單實(shí)用的傳參方式-創(chuàng)新互聯(lián)
分享地址:http://muchs.cn/article32/dhgcpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站關(guān)鍵詞優(yōu)化、網(wǎng)站排名、外貿(mào)網(wǎng)站建設(shè)、域名注冊(cè)、網(wǎng)站營(yíng)銷(xiāo)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)