PHP 流程控制与错误处理

发布于:2025-02-16 ⋅ 阅读:(116) ⋅ 点赞:(0)

PHP 学习资料

PHP 学习资料

PHP 学习资料


在 PHP 编程中,流程控制语句用于控制程序的执行顺序,而错误处理和异常处理机制则确保程序在遇到问题时能够稳定运行,并提供有意义的反馈。以下将详细介绍 PHP 中的条件语句、循环语句的使用,以及错误处理和异常处理机制。

一、条件语句

1. if - else 语句

if - else语句是最基本的条件判断结构,用于根据条件的真假来执行不同的代码块。

$age = 20;
if ($age >= 18) {
    echo "你已成年";
} else {
    echo "你未成年";
}

2. if - else if - else 语句

当需要进行多个条件判断时,可以使用if - else if - else语句。

$score = 85;
if ($score >= 90) {
    echo "成绩为A";
} else if ($score >= 80) {
    echo "成绩为B";
} else if ($score >= 70) {
    echo "成绩为C";
} else {
    echo "成绩为D";
}

3. switch 语句

switch语句用于基于不同条件执行不同的代码块,适用于对同一个变量进行多种不同值的判断。

$day = "Monday";
switch ($day) {
    case "Monday":
        echo "今天是星期一";
        break;
    case "Tuesday":
        echo "今天是星期二";
        break;
    default:
        echo "其他日期";
        break;
}

二、循环语句

1. for 循环

for循环常用于已知循环次数的场景,它包含初始化、条件判断和递增 / 递减三个部分。

for ($i = 1; $i <= 5; $i++) {
    echo "当前数字是:$i <br>";
}

2. while 循环

while循环在条件为真时持续执行代码块,适用于不确定循环次数,仅根据条件判断是否继续循环的情况。

$count = 1;
while ($count <= 3) {
    echo "计数:$count <br>";
    $count++;
}

3. do - while 循环

do - while循环与while循环类似,但它会先执行一次代码块,然后再判断条件。

$num = 1;
do {
    echo "数字是:$num <br>";
    $num++;
} while ($num <= 3);

4. foreach 循环

foreach循环专门用于遍历数组,能够方便地访问数组中的每个元素及其键(如果是关联数组)。

$students = array("张三" => 18, "李四" => 20, "王五" => 22);
foreach ($students as $name => $age) {
    echo "$name的年龄是$age岁。<br>";
}

三、错误处理

1. 错误报告级别设置

通过error_reporting()函数可以设置 PHP 报告哪些类型的错误。例如,显示所有错误:
error_reporting(E_ALL);

2. 自定义错误处理函数

可以使用set_error_handler()函数来定义自己的错误处理函数,当 PHP 遇到错误时会调用该函数。

function customError($errno, $errstr) {
    echo "错误编号:$errno <br>";
    echo "错误信息:$errstr <br>";
}
set_error_handler("customError");
// 触发一个错误
$test = 1 / 0;

3. 错误抑制运算符

在可能产生错误的表达式前加上@符号,可以抑制该表达式产生的错误信息输出。

@$test = 1 / 0;

但这种方式应谨慎使用,因为它可能会掩盖一些潜在的问题。

四、异常处理

1. 抛出异常

使用throw关键字抛出一个异常对象,异常对象通常是Exception类或其子类的实例。

function checkAge($age) {
    if ($age < 18) {
        throw new Exception("年龄必须大于等于18岁");
    }
    echo "年龄合法";
}
try {
    checkAge(15);
} catch (Exception $e) {
    echo "捕获到异常:". $e->getMessage();
}

2. try - catch 块

try块中放置可能抛出异常的代码,catch块用于捕获并处理异常。可以有多个catch块来处理不同类型的异常。

try {
    $file = fopen("nonexistent.txt", "r");
} catch (ErrorException $e) {
    echo "文件读取错误:". $e->getMessage();
}

3. finally 块

finally块中的代码无论是否发生异常都会被执行,常用于释放资源等操作。

try {
    $file = fopen("example.txt", "r");
    // 执行文件操作
} catch (ErrorException $e) {
    echo "文件读取错误:". $e->getMessage();
} finally {
    if (isset($file)) {
        fclose($file);
    }
}

掌握好 PHP 的流程控制语句和错误处理、异常处理机制,能够帮助开发者编写更加健壮、可靠的程序,提高程序的稳定性和可维护性。在实际开发中,应根据具体的业务需求和场景,合理运用这些知识来解决各种问题。


网站公告

今日签到

点亮在社区的每一天
去签到