在PHP中,處理函數參數的異??梢酝ㄟ^以下幾種方法實現:
PHP內置了一些異常類,如Exception、RuntimeException等。你可以在函數內部使用try-catch語句捕獲這些異常,并在catch塊中處理異常。
function myFunction($param) {
try {
if ($param === null) {
throw new Exception('參數不能為空');
}
// 其他代碼
} catch (Exception $e) {
echo '捕獲到異常:' . $e->getMessage();
}
}
myFunction(null); // 輸出:捕獲到異常:參數不能為空
你可以創建自定義的異常類,繼承自Exception或其他異常類,并在函數內部拋出這些異常。
class MyCustomException extends Exception {
public function __construct($message, $code = 0, Exception $previous = null) {
parent::__construct($message, $code, $previous);
}
}
function myFunction($param) {
if ($param === null) {
throw new MyCustomException('參數不能為空');
}
// 其他代碼
}
try {
myFunction(null);
} catch (MyCustomException $e) {
echo '捕獲到自定義異常:' . $e->getMessage();
}
你可以在函數定義時為參數設置默認值,當參數未傳遞或傳遞的值不符合預期時,使用默認值。
function myFunction($param = 'defaultValue') {
// 其他代碼
}
myFunction(); // 輸出:defaultValue
myFunction('newValue'); // 輸出:newValue
在PHP 7及以上版本,你可以使用類型聲明和斷言來檢查參數的類型。如果參數類型不符合預期,將拋出TypeError異常。
function myFunction(int $param): void {
if ($param !== 10) {
throw new TypeError('參數必須是整數');
}
// 其他代碼
}
myFunction(10); // 正常執行
myFunction('not an integer'); // 拋出 TypeError 異常
注意:類型聲明和斷言僅在PHP 7及以上版本可用。