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