摘要:為了解決沒有強制要求參數(shù)類型這個問題,引入了類的類型提示。要增加一個方法參數(shù)的類型提示,只需簡單地將類名放在需要約束的方法參數(shù)之前。如果要處理基本數(shù)據(jù)類型,在方法中可以使用這樣的類型檢查函數(shù)。
參數(shù)變量可以是任何基本類型的數(shù)據(jù),參數(shù)默認情況下也可以是任何類型的對象,在方法定義中可能會出現(xiàn)一些問題。
class ShopProductWriter { // 接受ShopProduct對象的方法 public function write($shopProduct){ $str = "{$shopProduct->title}: " . $shopProduct->getProducer() . " ({$shopProduct->price}) "; print $str; } } $product1 = new ShopProduct("My Antonia", "Willa", "Cather", 5.99); $write = new ShopProductWriter(); $write->write($product1); // My Antonia: Willa Cather (5.99)
把參數(shù)變量命名為$shopProduct,說明該方法希望接受一個ShopProduct對象,但是并沒有強制要求。也就是說,可能接受到非預(yù)期的對象或基本類型,但在實際處理$ShopProduct之前不會知道具體是什么。
為了解決沒有強制要求參數(shù)類型這個問題,PHP5引入了類的類型提示(type hint)。要增加一個方法參數(shù)的類型提示,只需簡單地將類名放在需要約束的方法參數(shù)之前。
public function write(ShopProduct $shopProduct) { //... }
現(xiàn)在write()方法只接受包含ShopProduct對象的$shopProduct參數(shù)。如果給方法傳入其他對象將會產(chǎn)生嚴重錯誤。
有了參數(shù)的類型提示,就不再需要在使用參數(shù)前對其進行類型檢查。類型提示是在運行時才生效的,也就是說,類型提示只有在錯誤的對象被傳遞給方法時才會報錯。
類型提示不能用于強制規(guī)定參數(shù)為某種基本數(shù)據(jù)類型,如字符串和整型。如果要處理基本數(shù)據(jù)類型,在方法中可以使用is_int()這樣的類型檢查函數(shù)。但可以強制規(guī)定使用數(shù)組作為參數(shù):
function setArray(array $storeArray) { $this->array = $storeArray; }
在PHP5.1中加入了對數(shù)組提示的支持,而后來的版本還新增了對null默認值得參數(shù)提示,即可以指定參數(shù)為一個特定類型或null值:
function setWriter(ObjectWrite $objWrite=null){ $this->writer = $objWrite; }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28391.html
摘要:特別適合一些動態(tài)加載的類,無法自動提示出來,這時就可以通過寫標(biāo)記來告訴我這類里有哪些方法格式返回值類型名稱類型參數(shù)描述例如向谷歌提問,返回答案內(nèi)容包。 用過IDE或看過其他源碼的小伙伴們應(yīng)該都見過類似下面這樣的注釋 /** * 遞歸獲取所有游戲分類 * @param int $id * @return array */ 看得多了就大概知道了一些規(guī)律。為了使自己的代碼更加規(guī)zhu...
摘要:這次發(fā)布包含新特性功能,及優(yōu)化,以讓我們寫出更好的代碼。安全性改進密碼哈希中的是榮獲年密碼哈希算法比賽中的冠軍的強大哈希算法,將其作為安全算法的替代品。是一個跨平臺和跨語言的庫,用于加密,解密,簽名,密碼哈希等。中函數(shù)已被取代。 showImg(https://segmentfault.com/img/bV8pyG?w=1240&h=620); PHP 7.2?已經(jīng)在 2017 年 1...
摘要:現(xiàn)在我們就可以在構(gòu)造函數(shù)或者任何其他通過服務(wù)容器注入依賴項的地方使用類型提示注入接口創(chuàng)建一個新的類實例,此處將注入的實例。自動解析構(gòu)造函數(shù)所需的依賴的服務(wù)容器實現(xiàn)了接口。 簡單的服務(wù)容器 一個簡單的 php 5.3 依賴注入容器。 項目地址:https://github.com/godruoyi/easy-container Why 目前比較流行的 PHP 容器: Pimple La...
摘要:為此,我仿照了淘寶的錯誤返回值格式,根據(jù)微博錯誤代碼制定的標(biāo)準(zhǔn)自定了自己的錯誤代碼,然后在上進行測試。實現(xiàn)思路我利用抽象工廠模式去實現(xiàn)這樣的一個錯誤返回值。錯誤返回值的格式就在這里定義。 序言 不管是微博還是淘寶,他們都有自己的錯誤返回值格式規(guī)范,以及錯誤代碼說明,這樣不但手機端用起來方便,給人的感覺也清晰明了,高大上。遇到問題先找母本,大公司的規(guī)范就是我們參照的母本。為此,我仿照了淘...
閱讀 2390·2023-04-25 19:27
閱讀 3499·2021-11-24 09:39
閱讀 3917·2021-10-08 10:17
閱讀 3407·2019-08-30 13:48
閱讀 1939·2019-08-29 12:26
閱讀 3131·2019-08-28 17:52
閱讀 3545·2019-08-26 14:01
閱讀 3542·2019-08-26 12:19