php基础学习day7(接口和错误处理)

接口

定义接口(让类去实现):

interface iUsb{
        public function start();
        public function end();
}

实现接口:

class Phone implements iUsb{
    public function start(){
            echo "手机开机...";
}
    public function end(){
        echo "手机关机...";
}
}

接口中的方法不可以写出来方法体,跟抽象方法是一样的

当一个类实现接口的时候,需要实现接口中所有的方法。


这么看起来,接口似乎和抽象类没有什么区别,但是:

  • 抽象类中的方法,如果没有定义成抽象方法的,是可以实现出来的。
  • 接口中的所有方法都是不可以实现的,全部都是没有方法体的。


接口的基本语法:

interface iUSB{
    
    //属性
    //方法
}



接口的概念并不是很难,我感觉难的应该是不知道什么时候使用接口。

假设老师让五个学生去写一个“学生信息管理系统”,那么老师如果定义一个接口,让学生去实现,那么就可以控制学生实现某个方法的命名,参数之类的。

什么情况下可以考虑使用接口:

1.定规范,让其他程序员来实现的时候。

2.当有多个类的时候,类与类之间是平级的关系,这些类都会去实现某个功能,只是实现的方法是不同的是不同的,但是


final关键字

  • 被final修饰的类是不允许被继承的
  • 在某一个类中,被final修饰的方法是无法被修改的

const关键字

const 常量名 = 初值;

因为常量是不能够被修改的,因此必须立马赋初值。


错误处理、异常处理

引入为何要错误处理:

假设我们要打开一个并不存在的文件,比如:

$fp = fopen("aa.txt","r");
echo "OK";

此时会出现:



如果我们想,如果这个文件不存在的话我们要打开另一个文件,此时有一个判断文件是否存在的函数:

file_exist

比如:

if(!file_exists("aaa.txt")){
    echo "不存在....";
}else {
    echo "存在";
}

根据上面的讨论,我们一起学习PHP的错误处理方式:

  • die()语句
die语句执行的功能也是退出,不过和exit()不同,在die()函数中,可以在退出之前输出一些文字。比如:

<?php
        if(!file_exists("aaa.txt")){
            die("文件不存在");
        }
       /*
        * 上面和下面的作用是一样的 
        if(!file_exists("aaa.txt")){
            echo "文件不存在";
            exit();
        }
       */
?>

更简单的写法:↓

<?php
        file_exists("aaa.txt") or die("文件不存在");
?>

  • 自定义错误和错误触发器
在PHP中,错误有级别之分,可以去w3c中查看。
我们可以写一个 错误函数,并且设置,当错误是warnning级别的时候,不要调用默认的错误函数,而是调用我们自己写的错误函数。假设我们写的错误函数为myError()。set_error_handler("myError",E_WARNING),后面跟的E_WARNING是一个PHP常量,可以去w3c中去找。

错误触发器:
在语法上不是错误的,但是程序员认为是错误的,这时候就可以用自定义错误触发器来完成。
比如:程序员认为,薪水小于200000是错误的,年龄大于50是错误的。

调用系统默认的触发器:
<?php
    $salary = 190000;
    if($salary<200000){
        //调用触发器
        trigger_error("年薪过小...");//此时是调用系统默认的方式
        exit();
    }
?>

使用自定义的触发器:
<?php
function myError($errorid,$errorstr){
    echo "<b>出错啦~</b> [$errorid] $errorstr";//此时的errorstr就是“年薪过小”
}
set_error_handler("myError",E_USER_WARNING);
$salary = 190000;
if($salary<200000){
    //调用触发器
    trigger_error("年薪过小...",E_USER_WARNING);//第二个参数设置程序员认为这是什么级别的错误
    //如果没有设置第二个trigger_error的第二个参数,默认是E_USER_NOTICE
    exit();
}
?>


  • 错误日志

这个我暂时先不学习了。。。。。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值