国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP類型約束的詳細(xì)介紹(附代碼)

2020-03-22 19:50:06
字體:
供稿:網(wǎng)友

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于PHP類型約束的詳細(xì)介紹(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

導(dǎo)語:所謂類型約束,即定義一個變量的時候,必須指定其類型,并且以后該變量也只能存儲該類型數(shù)據(jù)。PHP 雖然是弱類型語言,但是在 PHP 5 已經(jīng)支持類型約束,包括對象、接口、數(shù)組,在 PHP 7 之后支持標(biāo)量類型約束,下面簡單寫幾個示例。

標(biāo)量類型、數(shù)組

在參數(shù)中指明類型,如果不一致,會拋出一個可捕獲的致命錯誤

 ?php * 數(shù)組類型約束 * @param array $arrfunction printArray(array $arr) echo implode( , , $arr);printArray(array(1, 2, 3));// 1,2,3printArray( 1 // Fatal error: Uncaught TypeError: Argument 1 passed to printArray() must be of the type array, string given, called in D:/WWW/test.php on line 13 and defined in D:/WWW/test.php:7 Stack trace: #0 D:/WWW/test.php(13): printArray( 1 ) #1 {main} thrown in D:/WWW/test.php on line 7

如上所示,標(biāo)量類型也是如此

 ?php * 標(biāo)量類型約束 * @param string $name * @param int $age * @param float $height * @param bool $isBoyfunction sayInfo(string $name, int $age, float $height, bool $isBoy) echo 姓名: . $name . ,年齡: . $age . ,身高: . $height . ,是否為男孩: . ($isBoy ? 是 : 否 sayInfo( tom , 12, 134.5, true);// 姓名:tom,年齡:12,身高:134.5,是否為男孩:是

對象、接口

類型約束也可以指定為對象或者接口。首先定義一個 Human 接口,Boy 和 Girl 兩個類分別實(shí)現(xiàn)接口

 ?php * 接口 * Interface Humaninterface Human html' target='_blank'>public function say(); public function run(); * 實(shí)現(xiàn) Human 接口 * Class Boyclass Boy implements Human public function say() echo a boy say  public function run() echo a boy run  * 實(shí)現(xiàn) Human 接口 * Class Girlclass Girl implements Human public function say() echo a girl say  public function run() echo a girl run }

接下來新建一個類來測試

 ?phpinclude ./human.php class Action * Boy 對象類型約束 * @param Boy $boy public function boySay(Boy $boy) $boy- 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 sayecho br / $obj- girlSay(new Girl());// a girl sayecho br / $obj- humanRun(new Boy());// a boy runecho br / $obj- humanRun(new Girl());// a girl run

當(dāng)類型約束為具體對象 Boy 或者 Girl 時,只能傳入要求的對象。當(dāng)類型約束為接口 Human 時,可以傳入實(shí)現(xiàn)接口的類 Boy 或 Girl。

【相關(guān)推薦:PHP視頻教程】

以上就是PHP類型約束的詳細(xì)介紹(附代碼)的詳細(xì)內(nèi)容,PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 旺苍县| 昭通市| 南通市| 民县| 白朗县| 东宁县| 杭锦后旗| 呼和浩特市| 嵊泗县| 银川市| 临邑县| 洪洞县| 宜都市| 毕节市| 阿瓦提县| 大连市| 济南市| 武宣县| 九龙坡区| 南木林县| 抚远县| 平凉市| 调兵山市| 建阳市| 宿州市| 隆化县| 威信县| 东城区| 泾川县| 牡丹江市| 阿拉善左旗| 无棣县| 岳阳市| 深州市| 永丰县| 芜湖县| 舞阳县| 郎溪县| 通州区| 甘孜县| 黄石市|