首頁 >後端開發 >php教程 >PHP中的類型提示功能詳解

PHP中的類型提示功能詳解

*文
*文原創
2017-12-28 15:52:092462瀏覽

本文主要介紹了PHP中的類型提示(type hinting)功能介紹,本文講解了類型提示的作用和使用方法以及使用範例。希望對大家有幫助。

概述

從PHP5開始,我們可以使用類型提示來指定定義函數時,函數接收的參數類型。如果在定義函數時,指定了參數的類型,那麼當我們呼叫函數時,如果實參的類型與指定的類型不符,那麼PHP會產生一個致命等級的錯誤(Catchable fatal error)。

類別名稱和陣列

在定義函數時,PHP只支援兩種類型宣告:類別名稱和陣列。類別名稱表名此參數接收的實參為對應類別實例化的對象,陣列表示接收的實參為數組類型。下面是一個範例:

function demo(array $options){
  var_dump($options);
}


在定義demo()函數的時候,指定了函數接收的參數類型為陣列。如果我們呼叫函數時,傳入的參數不是數組類型,例如像下面這樣的呼叫:


#
$options='options';
demo($options);

##那麼就會產生以下錯誤:

Catchable fatal error: Argument 1 passed to demo() must be of the type array, string given,

可以使用null作為預設參數

注意

有一點需要特別注意的是,PHP只支援兩種類型的類型宣告,其他任何標量類型的宣告都是不支援的,例如下下面的程式碼都會產生錯誤:


function demo(string $str){
}
$str="hello";
demo($str)

當我們執行上面的程式碼時,string會被當做類別名稱對待,因此會報下面的錯誤:


Catchable fatal error: Argument 1 passed to demo() must be an instance of string, string given,

總結

類型宣告也是PHP物件導向的一個進步吧,尤其是在捕捉某種指定類型的例外時非常有用。

使用型別聲明,也可以增加程式碼的可讀性。
但是,由於PHP是弱型的語言,使用型別宣告又於PHP設計的初衷相悖。
到底使用還是不使用類型聲明,大家見仁見智吧。

相關推薦:

PHP 類型轉換函數intval_PHP教學

php 類型約束

php 類型運算子instanceof#

以上是PHP中的類型提示功能詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn