2020年5月14日

    1. <?php
    2. function set_error_handler($level,$message,$file,$line){
    3. //多个case的意思是:无论是匹配上E_ERROR还是E_USER_ERROR,都去执行E_USE_ERROR区间的代码
    4. //switch的case匹配上,就会执行case区间,但是如果case区间中间不写break;
    5. //执行完当前区间的代码然后执行下一个区间直到遇到break;才停止
    6. $level_string='';//保存当前错误级别
    7. $exit=false; //是否停止代码运行
    8. switch($level){
    9. case E_NOTICE;
    10. case E_USER_NOTICE;
    11. //这里写统治级别的错误处理
    12. $level_string ='提示:';
    13. break;
    14. case E_WARNING;
    15. case E_USER_WARNING;
    16. //这里写统治级别的错误处理
    17. $level_string ='警告';
    18. break;
    19. case E_ERROR;
    20. case E_USER_ERROR;
    21. //这里写统治级别的错误处理
    22. $level_string ='错误';
    23. $exit = true;
    24. break;
    25. }
    26. //3个不同的错误都要写输出错误,将其放在最后输出,并且变为一行
    27. echo "{$level_string} {$message} ({$file}) [{$line}]<br>";
    28. if(exit == true){
    29. exit();
    30. }
    31. }
    32. //注册错误处理函数
    33. //以下错误不会被错误处理函数处理
    34. //E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_WARNING
    35. set_error_handler('error');
    36. echo $s;
    37. echo"<br>";
    38. mysqli_connect('dadtf','root','root');
    39. trigger_error('提示级别的信息'E_UESR_NOTICE);
    40. trigger_error('警告级别的信息'E_UESR_WARNING);
    41. trigger_error('错误级别的信息'E_UESR_ERROR);
    42. echo"是否停止";
    43. <?php
    44. //获取一个对象
    45. //获取对象内的属性和方法
    46. class sports{
    47. public $basketball = '欧文';
    48. public $football = '梅西';
    49. public $badminton = '林丹';
    50. public function getbasketball()
    51. {
    52. return $this ->basketball;
    53. }
    54. public function getfootball()
    55. {
    56. return $this ->football;
    57. }
    58. public function getbadminton()
    59. {
    60. return $this ->badminton;
    61. }
    62. }
    63. //类是对象的抽象化表示方式,类需要通过new(实例化)来变成对象
    64. $A=new sports();
    65. var_dump($A);
    66. //$b=new hei();
    67. //var_dump($b);
    68. //获取里面的属性(变量)
    69. //->对象访问行,表示访问对象下面的内容,类似于数组的[]
    70. var_dump($A->basketball);
    71. var_dump($A->football);
    72. var_dump($A->badminton);
    73. //修改对象里面的属性
    74. $A->basketball='乔丹';
    75. var_dump($A);
    76. var_dump($A->getbasketball());
    77. var_dump($A->getfootball());
    78. var_dump($A->getbadminton());
    79. <?php
    80. function set_error_handler($level,$message,$file,$line){
    81. //多个case的意思是:无论是匹配上E_ERROR还是E_USER_ERROR,都去执行E_USE_ERROR区间的代码
    82. //switch的case匹配上,就会执行case区间,但是如果case区间中间不写break;
    83. //执行完当前区间的代码然后执行下一个区间直到遇到break;才停止
    84. $level_string='';//保存当前错误级别
    85. $exit=false; //是否停止代码运行
    86. switch($level){
    87. case E_NOTICE;
    88. case E_USER_NOTICE;
    89. //这里写统治级别的错误处理
    90. $level_string ='提示:';
    91. break;
    92. case E_WARNING;
    93. case E_USER_WARNING;
    94. //这里写统治级别的错误处理
    95. $level_string ='警告';
    96. break;
    97. case E_ERROR;
    98. case E_USER_ERROR;
    99. //这里写统治级别的错误处理
    100. $level_string ='错误';
    101. $exit = true;
    102. break;
    103. }
    104. //3个不同的错误都要写输出错误,将其放在最后输出,并且变为一行
    105. echo "{$level_string} {$message} ({$file}) [{$line}]<br>";
    106. if(exit == true){
    107. exit();
    108. }
    109. }
    110. //注册错误处理函数
    111. //以下错误不会被错误处理函数处理
    112. //E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_WARNING
    113. set_error_handler('error');
    114. echo $s;
    115. echo"<br>";
    116. mysqli_connect('dadtf','root','root');
    117. trigger_error('提示级别的信息'E_UESR_NOTICE);
    118. trigger_error('警告级别的信息'E_UESR_WARNING);
    119. trigger_error('错误级别的信息'E_UESR_ERROR);
    120. echo"是否停止";
    121. <?php
    122. //获取一个对象
    123. //获取对象内的属性和方法
    124. class sports{
    125. public $basketball = '欧文';
    126. public $football = '梅西';
    127. public $badminton = '林丹';
    128. public function getbasketball()
    129. {
    130. return $this ->basketball;
    131. }
    132. public function getfootball()
    133. {
    134. return $this ->football;
    135. }
    136. public function getbadminton()
    137. {
    138. return $this ->badminton;
    139. }
    140. }
    141. //类是对象的抽象化表示方式,类需要通过new(实例化)来变成对象
    142. $A=new sports();
    143. var_dump($A);
    144. //$b=new hei();
    145. //var_dump($b);
    146. //获取里面的属性(变量)
    147. //->对象访问行,表示访问对象下面的内容,类似于数组的[]
    148. var_dump($A->basketball);
    149. var_dump($A->football);
    150. var_dump($A->badminton);
    151. //修改对象里面的属性
    152. $A->basketball='乔丹';
    153. var_dump($A);
    154. var_dump($A->getbasketball());
    155. var_dump($A->getfootball());
    156. var_dump($A->getbadminton());
    157. <?php
    158. function set_error_handler($level,$message,$file,$line){
    159. //多个case的意思是:无论是匹配上E_ERROR还是E_USER_ERROR,都去执行E_USE_ERROR区间的代码
    160. //switch的case匹配上,就会执行case区间,但是如果case区间中间不写break;
    161. //执行完当前区间的代码然后执行下一个区间直到遇到break;才停止
    162. $level_string='';//保存当前错误级别
    163. $exit=false; //是否停止代码运行
    164. switch($level){
    165. case E_NOTICE;
    166. case E_USER_NOTICE;
    167. //这里写统治级别的错误处理
    168. $level_string ='提示:';
    169. break;
    170. case E_WARNING;
    171. case E_USER_WARNING;
    172. //这里写统治级别的错误处理
    173. $level_string ='警告';
    174. break;
    175. case E_ERROR;
    176. case E_USER_ERROR;
    177. //这里写统治级别的错误处理
    178. $level_string ='错误';
    179. $exit = true;
    180. break;
    181. }
    182. //3个不同的错误都要写输出错误,将其放在最后输出,并且变为一行
    183. echo "{$level_string} {$message} ({$file}) [{$line}]<br>";
    184. if(exit == true){
    185. exit();
    186. }
    187. }
    188. //注册错误处理函数
    189. //以下错误不会被错误处理函数处理
    190. //E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_WARNING
    191. set_error_handler('error');
    192. echo $s;
    193. echo"<br>";
    194. mysqli_connect('dadtf','root','root');
    195. trigger_error('提示级别的信息'E_UESR_NOTICE);
    196. trigger_error('警告级别的信息'E_UESR_WARNING);
    197. trigger_error('错误级别的信息'E_UESR_ERROR);
    198. echo"是否停止";
    199. <?php
    200. //获取一个对象
    201. //获取对象内的属性和方法
    202. class sports{
    203. public $basketball = '欧文';
    204. public $football = '梅西';
    205. public $badminton = '林丹';
    206. public function getbasketball()
    207. {
    208. return $this ->basketball;
    209. }
    210. public function getfootball()
    211. {
    212. return $this ->football;
    213. }
    214. public function getbadminton()
    215. {
    216. return $this ->badminton;
    217. }
    218. }
    219. //类是对象的抽象化表示方式,类需要通过new(实例化)来变成对象
    220. $A=new sports();
    221. var_dump($A);
    222. //$b=new hei();
    223. //var_dump($b);
    224. //获取里面的属性(变量)
    225. //->对象访问行,表示访问对象下面的内容,类似于数组的[]
    226. var_dump($A->basketball);
    227. var_dump($A->football);
    228. var_dump($A->badminton);
    229. //修改对象里面的属性
    230. $A->basketball='乔丹';
    231. var_dump($A);
    232. var_dump($A->getbasketball());
    233. var_dump($A->getfootball());
    234. 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代码