php傳參有哪些方法?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)瓜州,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
php傳參的方法有:1、調(diào)用者直接傳參,無需對參數(shù)進(jìn)行處理加工;2、把參數(shù)組合成一個數(shù)組的形式,整一個數(shù)組當(dāng)做參數(shù)進(jìn)行傳遞;3、傳遞一個數(shù)據(jù)結(jié)構(gòu)對象當(dāng)做參數(shù)。
php傳參的方法有:
第一種
直接傳參,每個參數(shù)一個個的排好隊寫上,例如:
優(yōu)點:
傳入的參數(shù)清晰,明確可以知道傳入?yún)?shù)有多少個,分別代表什么意思,從語義上一目了然。
調(diào)用方便,調(diào)用者直接傳參,無需對參數(shù)進(jìn)行處理加工。
對新手來說更加友好,更容易理解。
缺點:
形參太多,代碼失去了美感,太隨性了。
當(dāng)某個參數(shù)需要改動的時候,簡直是牽一發(fā)而動全身,比如$param5改為選填參數(shù),并且默認(rèn)值為test:
缺點很明顯,這個時候由于php參數(shù)順序的問題,選填參數(shù)必須在最后,所以所有調(diào)用者都需要起碼把原來的param5去除,放在參數(shù)最后位置,改動代價高。
總結(jié):當(dāng)參數(shù)少的時候,可以使用直接一個個參數(shù)傳遞,這樣是最好的,但是當(dāng)參數(shù)過多,或者改動需求大的時候,這種方法無疑是繁重的。
所以針對上面這種,當(dāng)參數(shù)數(shù)量過多的時候,可以使用方法二:
第二種
把參數(shù)組合成一個數(shù)組的形式,整一個數(shù)組當(dāng)做參數(shù)進(jìn)行傳遞。例如:
優(yōu)點:
代碼更加整潔了。
代碼更加靈活,現(xiàn)在就算有一個參數(shù)需要改動,也無需修改函數(shù)的參數(shù),只需要在調(diào)用者處增加參數(shù)即可。
缺點:
沒有了php的語法限制。例如沒有了string這種的類型限制,沒有了帶默認(rèn)值的選填參數(shù)的語法限制。這樣子就需要你做多一層參數(shù)的檢查。
參數(shù)可讀性差了。函數(shù)的數(shù)組里面有哪些參數(shù)是不能通過形參看出來的,需要查看調(diào)用者的數(shù)組組成。
總結(jié):總體來說這種方法可以解決第一種傳參方式的弊端,但是也自身帶來了更加大的弊端,參數(shù)的限制需要另外增加一層鉤子去處理,可以說是性價比比較低的一種方法。
綜合上面兩種方法的利弊,我總結(jié)出第三種傳參方式:
第三種
傳遞一個數(shù)據(jù)結(jié)構(gòu)對象當(dāng)做參數(shù),例如:
優(yōu)點:
參數(shù)為一個數(shù)據(jù)結(jié)構(gòu),保證數(shù)據(jù)的完整性。就是傳進(jìn)來的數(shù)據(jù)結(jié)構(gòu)必然能包含所需的參數(shù)。
當(dāng)參數(shù)需要更加或者減少的時候,只需要修改數(shù)據(jù)結(jié)構(gòu)模型的對象屬性即可。
把數(shù)據(jù)的控制和限制可以統(tǒng)一放在模型層進(jìn)行處理。
缺點:
可能需要多個數(shù)據(jù)結(jié)構(gòu)模型。
總結(jié):總體來說這種方法可以比較全面的解決第一第二種方法的弊端,就是需要建立多種數(shù)據(jù)結(jié)構(gòu)模型,增加了代碼量。
看完上述內(nèi)容,你們掌握php傳參有哪些方法的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
新聞標(biāo)題:php傳參有哪些方法
標(biāo)題網(wǎng)址:http://jinyejixie.com/article38/gpedsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、定制開發(fā)、品牌網(wǎng)站設(shè)計、標(biāo)簽優(yōu)化、、網(wǎng)頁設(shè)計公司
聲明:本網(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)