PHP 函數參數類型嚴格檢查可以確保傳遞的參數與宣告的類型一致。透過 declare(strict_types=1) 啟用後,函數參數要求符合指定類型,否則拋出 TypeError 例外。嚴格檢查支援基本型別(int、float)、複合型別(物件、陣列)、聯合型別(int|string)和選用型別(?int),提高程式碼健全性,防止傳遞錯誤型別的參數。
PHP 函數參數型別檢查,是指在函數呼叫時,檢查實際傳遞的參數型別是否與函數聲明的參數型別一致的過程。透過嚴格檢查可以提高程式碼的健全性,確保傳遞給函數的參數符合預期。
在PHP 7.0 以上版本中,可以使用Declare
語句對函數參數類型進行嚴格檢查:
declare(strict_types=1); function add(int $a, int $b) {...}
透過 strict_types=1
宣告啟用嚴格模式後,函數add
要求傳入兩個整數類型的參數,否則會拋出TypeError 例外。
PHP 支援以下基本型別和複合型別的嚴格檢查:
int
、float
、bool
、string
、null
複合類型:
object
或Class
array
int|string
?int
場景:
定義一個函數calculateArea
,計算幾何圖形的面積。需要根據不同的圖形類型,傳遞不同的參數:
function calculateArea($shape, $params) {...}
使用類型檢查防止參數錯誤:
declare(strict_types=1); function calculateArea(string $shape, array $params): float {...}
透過strict_types
宣告和明確的參數類型,可以防止傳遞錯誤類型的參數。例如:
calculateArea(123, []); // 抛出 TypeError 异常
使用聯合類型提高靈活性:
function calculateArea(string $shape, int|float $radius): float {...}
聯合類型允許函數根據不同的情況接收不同類型的參數。例如,計算圓形或正方形的面積:
calculateArea('circle', 5); calculateArea('square', 10);
null
值,可以使用可選型別 ?
。 以上是PHP 函數參數型別嚴格檢查如何實作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!