摘要:導語所謂類型約束,即定義一個變量的時候,必須指定其類型,并且以后該變量也只能存儲該類型數(shù)據(jù)。當類型約束為接口時,可以傳入實現(xiàn)接口的類或。參考資料類型約束標量類型聲明。
導語
所謂類型約束,即定義一個變量的時候,必須指定其類型,并且以后該變量也只能存儲該類型數(shù)據(jù)。PHP 雖然是弱類型語言,但是在 PHP 5 已經(jīng)支持類型約束,包括對象、接口、數(shù)組,在 PHP 7 之后支持標量類型約束,下面簡單寫幾個示例。
標量類型、數(shù)組在參數(shù)中指明類型,如果不一致,會拋出一個可捕獲的致命錯誤
如上所示,標量類型也是如此
對象、接口類型約束也可以指定為對象或者接口。首先定義一個 Human 接口,Boy 和 Girl 兩個類分別實現(xiàn)接口
接下來新建一個類來測試
say(); } /** * Girl 對象類型約束 * @param Girl $girl */ public function girlSay(Girl $girl) { $girl->say(); } /** * Human 接口類型約束 * @param Human $obj */ public function humanRun(Human $obj) { $obj->run(); } } $obj = new Action(); $obj->boySay(new Boy());// a boy say echo "
"; $obj->girlSay(new Girl());// a girl say echo "
"; $obj->humanRun(new Boy());// a boy run echo "
"; $obj->humanRun(new Girl());// a girl run當類型約束為具體對象 Boy 或者 Girl 時,只能傳入要求的對象。當類型約束為接口 Human 時,可以傳入實現(xiàn)接口的類 Boy 或 Girl。
參考資料:PHP 5 類型約束、PHP 7 標量類型聲明。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/31145.html
摘要:但是在以來,在面向?qū)ο笾校瑸榉椒◣砹祟愋图s束,然而這些都非常的雞肋,從文檔上可以看到。支持對象接口支持數(shù)組支持匿名函數(shù)類型約束不能用于標量類型如或。它的運作方式,是在中設置一個標志位,讓函數(shù)調(diào)用和返回類型檢查符合類型約束。 起點 眾所周知,PHP 是弱類型語言,與其他強類型語言項目,在這方面會有很多的坑,但是已經(jīng)發(fā)展到 PHP 7 之后,PHP 也對類型約束有了所指,并且在許多流行框...
摘要:但是在的高版本語法中起,在某些特定場合,針對某些特定類型,也是可以進行語法約束的。注意在以前,類型約束不能用于標量類型如或。這意味著嚴格聲明標量是基于文件可配的。這個指令不僅影響參數(shù)的類型聲明,也影響到函數(shù)的返回值聲明。 前言 眾所周知,在 強類型 語言中,類型約束 是語法上的要求,即:定義一個變量的時候,必須指定其類型,并且以后該變量也只能存儲該類型數(shù)據(jù)。 而我們的PHP是弱類型語言...
在 Laravel 的控制器的構(gòu)造方法或者成員方法,都可以通過類型約束的方式使用依賴注入,如: public function store(Request $request) { //TODO } 這里 $request 參數(shù)就使用了類型約束,Request 是類型約束的類型,它是一個類:IlluminateHttpRequest. 本文研究 Laravel 的依賴注入原理,為什么這樣定義...
摘要:數(shù)據(jù)庫學習線路圖語法教程教程簡介語法選擇查詢子句與,或,非按關(guān)鍵字排序在表中插入空值更新刪除運算符通配符運算符運算符通用數(shù)據(jù)類型語句快速參考連接內(nèi)部連接左連接右連接完整外部連接自連接運算符語句語句撤銷索引表以及數(shù)據(jù)庫語句語句語句字 數(shù)據(jù)庫學習線路圖 SQL 語法教程 SQL 教程 SQL 簡介 SQL 語法 SQL Select選擇 SQL SELECT DISTINCT S...
閱讀 1915·2021-11-24 09:39
閱讀 2142·2021-09-22 15:50
閱讀 2018·2021-09-22 14:57
閱讀 707·2021-07-28 00:13
閱讀 1072·2019-08-30 15:54
閱讀 2365·2019-08-30 15:52
閱讀 2690·2019-08-30 13:07
閱讀 3793·2019-08-30 11:27