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. python等值和大小比较

    等值.大小比较 在python中,只要两个对象的类型相同,且它们是内置类型(字典除外),那么这两个对象就能进行比较.关键词:内置类型.同类型.所以,两个对象如果类型不同,就没法比较,比如数值类型的数值 ...

  2. svn迁移后本地地址变更及externals无效的问题

    1.软件: visual SVN Server 2.具体方法: 在打开本地原来SVN check  out的根目录,点右键,tortoiseSVN --> relocate 弹出的对话框中修改s ...

  3. .net 后台判断是否要替换

    Response.Write("<script>window.onload=function (){if(confirm(\"该文件已经存在,确定要替换吗吗?\&quo ...

  4. 同一个dll 不同路径下注册 一个失败 一个成功

    一个路径下用regsvr32注册成功,一个注册失败,提示平台不兼容. 最后用depends查看依赖的dll,发现依赖的dll有问题,从注册成功的路径下复制一个过来,重新注册就成功了

  5. .NET 单元测试的利剑——模拟框架Moq(简述篇)

    .NET 单元测试的利剑--模拟框架Moq 前言 这篇文章是翻译文,因为通过自己参与的项目,越发觉得单元测试的重要性,特别是当跟业务数据打交道的时候的,Moq就如雪中送炭,所以想学习这个框架,就从这篇 ...

  6. 什么是kibana?

    简介 Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作.您可以使用 Kibana 对 Elasticsearch ...

  7. eclipse安装阿里编码规约插件

    点击帮助,Install New Software... 地址为https://p3c.alibaba.com/plugin/eclipse/update 然后选择安装, 一路next即可

  8. 使用JSDoc自动生成代码文档

    译者按: 代码要有规范的注释,遵从jsDoc规则来注释可以生成有用的文档. 原文: Generate docs and host it with JSDoc and GitHub Pages 译者:  ...

  9. windows生成当前目录树

    tree /f > list.txt 需要以管理员运行cmd

  10. bootstrap网站后台从设计到开发

    前言 毕业后在一家小公司找的工作是做前端,小公司必须要身兼多职,会多门技术,所以为了工作需要自学ps,做过微信运营,后来为了做erp管理系统,又开始学习c# ,之后公司有新项目要用wpf ,我又开始学 ...