溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php傳參有哪些方法

發(fā)布時(shí)間:2020-07-22 16:48:43 來(lái)源:億速云 閱讀:166 作者:Leah 欄目:編程語(yǔ)言

php傳參有哪些方法?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

php傳參的方法有:1、調(diào)用者直接傳參,無(wú)需對(duì)參數(shù)進(jìn)行處理加工;2、把參數(shù)組合成一個(gè)數(shù)組的形式,整一個(gè)數(shù)組當(dāng)做參數(shù)進(jìn)行傳遞;3、傳遞一個(gè)數(shù)據(jù)結(jié)構(gòu)對(duì)象當(dāng)做參數(shù)。

php傳參的方法有:

第一種

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

php傳參有哪些方法

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

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

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

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

缺點(diǎn):

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

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

php傳參有哪些方法

缺點(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)行傳遞。例如:

php傳參有哪些方法

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

  • 代碼更加整潔了。

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

缺點(diǎn):

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

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

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

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

第三種

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

php傳參有哪些方法

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

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

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

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

缺點(diǎn):

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

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


看完上述內(nèi)容,你們掌握php傳參有哪些方法的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI