2020年5月14日
<?phpfunction set_error_handler($level,$message,$file,$line){//多个case的意思是:无论是匹配上E_ERROR还是E_USER_ERROR,都去执行E_USE_ERROR区间的代码//switch的case匹配上,就会执行case区间,但是如果case区间中间不写break;//执行完当前区间的代码然后执行下一个区间直到遇到break;才停止$level_string='';//保存当前错误级别$exit=false; //是否停止代码运行switch($level){case E_NOTICE;case E_USER_NOTICE;//这里写统治级别的错误处理$level_string ='提示:';break;case E_WARNING;case E_USER_WARNING;//这里写统治级别的错误处理$level_string ='警告';break;case E_ERROR;case E_USER_ERROR;//这里写统治级别的错误处理$level_string ='错误';$exit = true;break;}//3个不同的错误都要写输出错误,将其放在最后输出,并且变为一行echo "{$level_string} {$message} ({$file}) [{$line}]<br>";if(exit == true){exit();}}//注册错误处理函数//以下错误不会被错误处理函数处理//E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_WARNINGset_error_handler('error');echo $s;echo"<br>";mysqli_connect('dadtf','root','root');trigger_error('提示级别的信息',E_UESR_NOTICE);trigger_error('警告级别的信息',E_UESR_WARNING);trigger_error('错误级别的信息',E_UESR_ERROR);echo"是否停止";<?php//获取一个对象//获取对象内的属性和方法class sports{public $basketball = '欧文';public $football = '梅西';public $badminton = '林丹';public function getbasketball(){return $this ->basketball;}public function getfootball(){return $this ->football;}public function getbadminton(){return $this ->badminton;}}//类是对象的抽象化表示方式,类需要通过new(实例化)来变成对象$A=new sports();var_dump($A);//$b=new hei();//var_dump($b);//获取里面的属性(变量)//->对象访问行,表示访问对象下面的内容,类似于数组的[]var_dump($A->basketball);var_dump($A->football);var_dump($A->badminton);//修改对象里面的属性$A->basketball='乔丹';var_dump($A);var_dump($A->getbasketball());var_dump($A->getfootball());var_dump($A->getbadminton());<?phpfunction set_error_handler($level,$message,$file,$line){//多个case的意思是:无论是匹配上E_ERROR还是E_USER_ERROR,都去执行E_USE_ERROR区间的代码//switch的case匹配上,就会执行case区间,但是如果case区间中间不写break;//执行完当前区间的代码然后执行下一个区间直到遇到break;才停止$level_string='';//保存当前错误级别$exit=false; //是否停止代码运行switch($level){case E_NOTICE;case E_USER_NOTICE;//这里写统治级别的错误处理$level_string ='提示:';break;case E_WARNING;case E_USER_WARNING;//这里写统治级别的错误处理$level_string ='警告';break;case E_ERROR;case E_USER_ERROR;//这里写统治级别的错误处理$level_string ='错误';$exit = true;break;}//3个不同的错误都要写输出错误,将其放在最后输出,并且变为一行echo "{$level_string} {$message} ({$file}) [{$line}]<br>";if(exit == true){exit();}}//注册错误处理函数//以下错误不会被错误处理函数处理//E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_WARNINGset_error_handler('error');echo $s;echo"<br>";mysqli_connect('dadtf','root','root');trigger_error('提示级别的信息',E_UESR_NOTICE);trigger_error('警告级别的信息',E_UESR_WARNING);trigger_error('错误级别的信息',E_UESR_ERROR);echo"是否停止";<?php//获取一个对象//获取对象内的属性和方法class sports{public $basketball = '欧文';public $football = '梅西';public $badminton = '林丹';public function getbasketball(){return $this ->basketball;}public function getfootball(){return $this ->football;}public function getbadminton(){return $this ->badminton;}}//类是对象的抽象化表示方式,类需要通过new(实例化)来变成对象$A=new sports();var_dump($A);//$b=new hei();//var_dump($b);//获取里面的属性(变量)//->对象访问行,表示访问对象下面的内容,类似于数组的[]var_dump($A->basketball);var_dump($A->football);var_dump($A->badminton);//修改对象里面的属性$A->basketball='乔丹';var_dump($A);var_dump($A->getbasketball());var_dump($A->getfootball());var_dump($A->getbadminton());<?phpfunction set_error_handler($level,$message,$file,$line){//多个case的意思是:无论是匹配上E_ERROR还是E_USER_ERROR,都去执行E_USE_ERROR区间的代码//switch的case匹配上,就会执行case区间,但是如果case区间中间不写break;//执行完当前区间的代码然后执行下一个区间直到遇到break;才停止$level_string='';//保存当前错误级别$exit=false; //是否停止代码运行switch($level){case E_NOTICE;case E_USER_NOTICE;//这里写统治级别的错误处理$level_string ='提示:';break;case E_WARNING;case E_USER_WARNING;//这里写统治级别的错误处理$level_string ='警告';break;case E_ERROR;case E_USER_ERROR;//这里写统治级别的错误处理$level_string ='错误';$exit = true;break;}//3个不同的错误都要写输出错误,将其放在最后输出,并且变为一行echo "{$level_string} {$message} ({$file}) [{$line}]<br>";if(exit == true){exit();}}//注册错误处理函数//以下错误不会被错误处理函数处理//E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_WARNINGset_error_handler('error');echo $s;echo"<br>";mysqli_connect('dadtf','root','root');trigger_error('提示级别的信息',E_UESR_NOTICE);trigger_error('警告级别的信息',E_UESR_WARNING);trigger_error('错误级别的信息',E_UESR_ERROR);echo"是否停止";<?php//获取一个对象//获取对象内的属性和方法class sports{public $basketball = '欧文';public $football = '梅西';public $badminton = '林丹';public function getbasketball(){return $this ->basketball;}public function getfootball(){return $this ->football;}public function getbadminton(){return $this ->badminton;}}//类是对象的抽象化表示方式,类需要通过new(实例化)来变成对象$A=new sports();var_dump($A);//$b=new hei();//var_dump($b);//获取里面的属性(变量)//->对象访问行,表示访问对象下面的内容,类似于数组的[]var_dump($A->basketball);var_dump($A->football);var_dump($A->badminton);//修改对象里面的属性$A->basketball='乔丹';var_dump($A);var_dump($A->getbasketball());var_dump($A->getfootball());var_dump($A->getbadminton());
自定义php错误处理方式
函数:
set_error_handler(); 注册一个自定义错误处理的函数
trigger_error(); 抛出一个用户自定义的错误
可以记录错误的信息(用户自定义报错),及时发现一些bug
可以屏蔽错误,控制错误的输出,也可以作为调试工具
set_error_handler(函数名字);
注册上之后系统的错误报错则不会显示,如果遇到错误就会调用注册成错误处理函数的函数;同时会传递一些参数
定义一个自定义错误处理函数->可以让我们输出错误信息
int 错误及被 | string 错误信息 | string 文件位置 | int 行号
如何定义一个类(对象的抽象表示)
语法:
class 类名{
成员属性(变量,常量)
成员方法(自定义函数)
}
定义一个空类(object)
class QT{}
每个类开头以class开头,面跟着类名,紧接着跟着一对大括号/括号,成员属性和成员方法
类名命名规范
大小写字母和数字和下划线
数字不能开头
首字母必须大写
Ps.类名通常使用英文单词命名,首字母大写
类中规范
大括号中只允许出现:成员属性(变量和常量)和成员方法(自定义函数)
注意:类中函数有专属的定义方式,不允许使用define定义,类中使用const定义
成员属性格式
[访问修饰符(public)] 变量=值
[访问修饰符(public)] 变量名;//null
访问修饰符有三个,默认为public
public $res=555;
成员方法格式:
[访问修饰符(public)] function 函数名(形参…)
{
# 写普通的php代码
