在PHP中,處理函數(shù)參數(shù)的異??梢酝ㄟ^(guò)以下幾種方法實(shí)現(xiàn):
PHP內(nèi)置了一些異常類(lèi),如Exception
、RuntimeException
等。你可以在函數(shù)內(nèi)部使用try-catch
語(yǔ)句捕獲這些異常,并在catch
塊中處理異常。
function myFunction($param) {
try {
if ($param === null) {
throw new Exception('參數(shù)不能為空');
}
// 其他代碼
} catch (Exception $e) {
echo '捕獲到異常:' . $e->getMessage();
}
}
myFunction(null); // 輸出:捕獲到異常:參數(shù)不能為空
你可以創(chuàng)建自定義的異常類(lèi),繼承自Exception
或其他異常類(lèi),并在函數(shù)內(nèi)部拋出這些異常。
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('參數(shù)不能為空');
}
// 其他代碼
}
try {
myFunction(null);
} catch (MyCustomException $e) {
echo '捕獲到自定義異常:' . $e->getMessage();
}
你可以在函數(shù)定義時(shí)為參數(shù)設(shè)置默認(rèn)值,當(dāng)參數(shù)未傳遞或傳遞的值不符合預(yù)期時(shí),使用默認(rèn)值。
function myFunction($param = 'defaultValue') {
// 其他代碼
}
myFunction(); // 輸出:defaultValue
myFunction('newValue'); // 輸出:newValue
在PHP 7及以上版本,你可以使用類(lèi)型聲明和斷言來(lái)檢查參數(shù)的類(lèi)型。如果參數(shù)類(lèi)型不符合預(yù)期,將拋出TypeError
異常。
function myFunction(int $param): void {
if ($param !== 10) {
throw new TypeError('參數(shù)必須是整數(shù)');
}
// 其他代碼
}
myFunction(10); // 正常執(zhí)行
myFunction('not an integer'); // 拋出 TypeError 異常
注意:類(lèi)型聲明和斷言?xún)H在PHP 7及以上版本可用。