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

来源:互联网 发布:想做大数据要学什么 编辑:程序博客网 时间:2024/05/16 08:10

接口

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

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();    }?>

使用自定义的触发器:
<?phpfunction 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();}?>


  • 错误日志

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




原创粉丝点击