在 PHP 中自訂函數參數類型驗證可強制參數類型,確保其符合預期,進而提高程式碼健全性。可透過以下方式實現:類型提示:聲明函數參數的預期類型,不匹配類型將拋出異常。類型轉換:使用 settype 函數或運算子將變數轉換為指定類型。類型推論:PHP 自動推論變數類型,如賦值時。自訂驗證:建立自訂驗證函數以驗證特定類型(如日期)。實戰案例:透過姓名驗證函數展示自訂驗證的用法,確保名稱長度和格式符合要求。
#在PHP 中,函數參數的類型驗證允許你強制傳入的參數類型,確保它們與預期相符。這有助於提高程式碼的健全性和可靠性。
PHP 7.0 引入了類型提示,允許你宣告函數參數的預期類型。你可以使用內建類型或自建類別。
function sum(int $num1, int $num2) { return $num1 + $num2; }
如果傳入的參數不符合宣告的類型,PHP 會拋出一個 TypeError
例外。
PHP 支援型別轉換與型別推論:
settype
函數或強制型別轉換運算子將變數轉換為指定型別。 // 类型转换 $int = (int) '10'; // 类型推断 $array = [1, 2, 3];
對於內建類型無法滿足的需求,你可以建立自訂驗證函數。
function validateDate(string $date): bool { if (preg_match('/^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$/', $date)) { return true; } return false; } function formatDate(string $date) { if (!validateDate($date)) { throw new InvalidArgumentException('Invalid date format.'); } //... }
以下是一個驗證使用者輸入姓名的函數:
function validateName(string $name): void { if (strlen($name) < 3 || strlen($name) > 25) { throw new InvalidArgumentException('Name must be between 3 and 25 characters long.'); } if (!preg_match('/^[a-zA-Z ]+$/', $name)) { throw new InvalidArgumentException('Name must contain only letters and spaces.'); } }
這個函數使用自訂驗證來確保傳入的名字符合要求。
自訂類型驗證提供以下優點:
以上是如何自訂 PHP 函數參數的型別驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!