在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及以上版本可用。