一、 PHP 函数数组引用传递
在 PHP 中,函数参数传递有传值和传引用两种方式。传值方式是将参数的值复制一份传递到函数中使用,这样函数内对参数的修改不会影响参数的原值。而传引用方式是将参数的引用传递到函数中使用,函数内对参数的修改会直接影响参数的原值。
对于数组参数,传值方式是将数组的值复制一份传递到函数中,函数内对数组的修改不会影响参数的原数组。传引用方式是将数组的引用传递到函数中,函数内对数组的修改会直接影响参数的原数组。
示例代码:
```
function addOne($num) {
$num += 1;
}
function addOneToArray($array) {
foreach ($array as &$val) {
$val += 1;
}
}
$num = 1;
addOne($num);
echo $num; // 输出 1,因为传值方式不会修改原值
$array = [1, 2, 3];
addOneToArray($array);
print_r($array); // 输出 [2, 3, 4],因为传引用方式直接修改原数组
```
在函数参数中使用引用传递数组时,需要在参数名称前加上 `&` 符号表示引用传递。示例代码:
```
function addOneToArray(&$array) {
foreach ($array as &$val) {
$val += 1;
}
}
$array = [1, 2, 3];
addOneToArray($array);
print_r($array); // 输出 [2, 3, 4],因为使用了引用传递方式
```
二、 PHP 捕捉异常
在 PHP 中,异常是一种用于处理代码执行过程中发生的错误的机制。当出现错误时,可以抛出一个异常,然后在上层代码通过捕获异常来进行处理。异常处理可以让程序代码更加健壮,提高了代码的健壮性和可读性。
在 PHP 中,异常是通过 `try...catch` 语句来捕获和处理的。`try` 块中的代码表示要进行异常检测的代码,`catch` 块用于捕获并处理异常。示例代码:
```
try {
// 要进行异常检测的代码
} catch (Exception $e) {
// 处理异常
}
```
在 `try` 块中,抛出异常使用 `throw` 关键字。`throw` 后面可以是一个异常对象,也可以是一个字符串、数字等类型的数据,但是这种情况下会抛出一个 `ErrorException` 异常。示例代码:
```
try {
$num = 10 / 0;
} catch (Exception $e) {
echo "捕获到异常:" . $e->getMessage();
}
```
在上述代码中,由于除数为 0 ,会抛出一个 `DivisionByZeroError` 异常,最终会被 `catch` 块中的代码捕获并输出异常信息。
自定义异常是实现异常处理的一种方式。自定义异常可以继承 PHP 自带的 `Exception` 类,也可以继承其他异常类,从而实现自己的异常类。自定义异常可以定义一些额外的属性和方法,方便在异常发生后进行处理。示例代码:
```
class CustomException extends Exception {
public function __construct($message, $code = 0) {
parent::__construct($message, $code);
}
public function customFunction() {
echo "自定义异常方法";
}
}
try {
throw new CustomException("自定义异常", 1001);
} catch (CustomException $e) {
echo "捕获到自定义异常:" . $e->getMessage() . ", code=" . $e->getCode();
$e->customFunction();
}
```
在上述代码中,自定义的异常类 `CustomException` 继承了 `Exception` 类,并添加了一个自定义方法 `customFunction()`。在 `try` 块中抛出 `CustomException` 异常,最终会被 `catch` 块中的代码捕获,并输出异常信息和自定义方法。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
发表评论 取消回复