本篇文章給大家?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 兩個類分別實現(xiàn)接口
?php * 接口 * Interface Humaninterface Human html' target='_blank'>public function say(); public function run(); * 實現(xiàn) Human 接口 * Class Boyclass Boy implements Human public function say() echo a boy say public function run() echo a boy run * 實現(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 時,可以傳入實現(xiàn)接口的類 Boy 或 Girl。
【相關(guān)推薦:PHP視頻教程】
以上就是PHP類型約束的詳細(xì)介紹(附代碼)的詳細(xì)內(nèi)容,PHP教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。
新聞熱點
疑難解答
圖片精選