php错误处理

一、错误分类:1、语法错误 2、运行时错误 3、逻辑错误

错误代号(部分):

所有看到的错误代码在php中都被定义为系统常量(可以直接使用)

1)系统错误

E_PARSE:编译错误,代码不会执行

E_ERROR: fatal error 致命错误,会导致代码不能正确执行(出错的位置断掉)

E_WARNING: warning,警告错误,不会影响代码执行,但是可能会得到意想不到的结果

E_NOTICE: 通知错误,不会影响代码执行

2)用户错误:E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE

用户在使用自定义错误触发的时候,会使用到的错误代号

3)其他:E_ALL。代表着所有错误(通常在进行错误控制时使用较多),建议在开发中使用

所有以E开头的错误常量其实都是由一个字节存储,然后每一种错误占据一个对应的位,如果想进行一些错误的控制,可以使用位运算进行操作

排除通知级别notice:E_ALL & ~E_NOTICE

只要警告和通知:E_WARNING | E_NOTICE

二、错误触发

程序运行时触发

人为触发

注:处理脚本让浏览器按照指定字符集解析的方法

例:header('Content-type:text/html;charset=utf-8');

三、错误显示

错误显示设置:

两种方式

1、php配置文件:全局配置:php.ini文件

Display_error:是否显示错误

error_reporting:显示什么级别的错误

2、可以在运行的php脚本中区设置(通常在开发中都会在代码中去控制和配置)

Error_reporting():设置对应的错误显示级别

Ini_set('配置文件中的配置项',配置值);

Ini_set('error_reporting',E_ALL);

Ini_set('diapay_errors',1);

3、错误日志:

开启日志功能

log_errors=on;

指定路径

error_log=....

函数代码重用:https://www.imooc.com/video/14680

require()

require_once()

include()

include_once()

set_include_path()

ini_set()函数

restore_include_path() 取消设置的路径

$_POST

​ 当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencodedmultipart/form-data 时,会将变量以关联数组形式传入当前脚本。

$_GET

​ 通过 URL 参数传递给当前脚本的变量的数组。

$_REQUEST

​ 默认情况下包含了 $_GET$_POST$_COOKIE 的数组。

urldecode

​ urldecode — 解码已编码的 URL 字符串

​ 解码给出的已编码字符串中的任何 %##。 加号('+')被解码成一个空格字符。

<?php
$query = "my=apples&are=green+and+red";

foreach (explode('&', $query) as $chunk) {//将query中的字符串分为my=apples和are=green+and+red
  $param = explode("=", $chunk);//同上

  if ($param) {
      printf("Value for parameter \"%s\" is \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
  }
}
?>

php学习----错误处理和代码重用的更多相关文章

  1. PHP学习(6)——代码重用与函数编写的一些注意事项

    一个新的项目是这样创建的:它将已有的可重新利用的组件进行组合,并将新的开发难度降低到最小. 代码重用的好处:降低成本.提升可靠性和一致性. 1.使用require()和include()函数 使用一条 ...

  2. 从零开始攻略PHP(6)——代码重用与函数编写的一些注意事项

    一个新的项目是这样创建的:它将已有的可重新利用的组件进行组合,并将新的开发难度降低到最小. 代码重用的好处:降低成本.提升可靠性和一致性. 1.使用require()和include()函数 使用一条 ...

  3. php 代码重用

    <?php /* 21.php * 代码重用 * include() required()载入文件 * include() 如果载入文件不存在,提示警告,还可以继续执行 * required() ...

  4. 52. 模版和设计元素——Lotus Notes的代码重用

    不论是理论上还是实用上,代码重用都是编程的一个重要议题.可以从两个角度来讨论代码重用. 一是逻辑上代码以怎样的方式被重用.既可以通过面向对象的思想普及以来耳熟能详的继承的方式.比如先建了一个车的基类, ...

  5. IOS开发-OC学习-常用功能代码片段整理

    IOS开发-OC学习-常用功能代码片段整理 IOS开发中会频繁用到一些代码段,用来实现一些固定的功能.比如在文本框中输入完后要让键盘收回,这个需要用一个简单的让文本框失去第一响应者的身份来完成.或者是 ...

  6. Java 代码重用:操作与上下文重用

    目录 操作重用 参数化操作 上下文重用 上下文作为模板方法 结束语 我几乎不需要讨论为什么重用代码是有利的.代码重用(通常)会导致更快的开发与更少的 BUG.一旦一段代码被封装和重用,那么检查程序是否 ...

  7. 《C++ Primer Plus》读书笔记之十二—C++中的代码重用

    第14章 C++中的代码重用 1.C++代码重用方法:公有继承.使用本身是另一个类的对象的类成员(这种方法称为包含.组合或层次化).私有或保护继承.类模板等. 2.模板特性意味着声明对象时,必须指定具 ...

  8. jQuery 学习笔记:jQuery 代码结构

    jQuery 学习笔记:jQuery 代码结构 这是我学习 jQuery 过程中整理的笔记,这一部分主要包括 jQuery 的代码最外层的结构,写出来整理自己的学习成果,有错误欢迎指出. jQuery ...

  9. 021PHP基础知识——代码重用

    <?php /** * 代码重用 * include() require() 载入文件 * include() 如果载入的文件不存在,提示警告错误. * require() 如果载入的文件不存在 ...

随机推荐

  1. MySQL优化(2)--------常用优化

    前言 之前已经简单介绍了MySQL的优化步骤,那么接下来自然而是就是常用的SQL优化,比如inseer.group by等常用SQL的优化,会涉及SQL语句内部细节(这正是我缺乏的).最后希望自己能记 ...

  2. Spring Cloud Finchley版中Consul多实例注册的问题处理

    由于Spring Cloud对Etcd的支持一直没能从孵化器中出来,所以目前来说大多用户还在使用Eureka和Consul,之前又因为Eureka 2.0不在开源的消息,外加一些博眼球的标题党媒体使得 ...

  3. IntelliJ IDEA快捷键与使用小技巧

    IntelliJ Idea 常用快捷键列表 修改方法如下: 点击 文件菜单(File) –> 点击 设置(Settings… Ctrl+Alt+S), –> 打开设置对话框. 在左侧的导航 ...

  4. 设置TabWidget的样式的方法、关联Fragment与tabwidget的方法、点击tab显示相应Fragment方法

    private void updateTabHost(TabHost tabHost) { int count = tabHost.getTabWidget().getChildCount(); ; ...

  5. mongodb遇到的问题

    安装好mongodb之后,服务里默认增加了一个mongodb service的服务,但是服务打不开,右键选择其属性,看他的执行路径执行的是cfg配置文件,看了配置文件里的东西,发现和自己想要的差不多, ...

  6. IIS域名转发

    在IIS中设置Http重定向 界面操作如下: 最终通过上面的操作生成了一个配置文件如下: 我这面就是一个空的目录,里面仅包含这个配置文件,就可以实现转发啦

  7. 【worker】js中的多线程

    因为下个项目中要用到一些倒计时的功能,所以就提前准备了一下,省的到时候出现一下界面不友好和一些其他的事情.正好趁着这个机会也加深一下html5中的多线程worker的用法和理解. Worker简介 J ...

  8. mysql 创建函数This function has none of DETERMINISTIC, NO SQL, or READS

    今天在mysql 5.6上创建函数的时候 发现报错: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or R ...

  9. git error: RPC failed; result=56, HTTP code = 200

    突然发现git pull 后出现几次都无果,百度后, 发现是curl的postBuffer 默认值较小的原因,配置下这个值,就不会出现该错误了.解决如下: git config --global ht ...

  10. Android Studio 学习(一)

    XML给元素定义ID 定义id android:id="@+id/button_1" 引用id id/id_name 解决Failed to load Appcompat Acti ...