PHP 파일 로딩 및 오류 처리 소개

不言
풀어 주다: 2023-04-02 13:24:02
원래의
1646명이 탐색했습니다.

이 글은 주로 PHP 파일 로딩과 오류 처리에 대한 소개입니다. 이제 특정 참고 가치가 있습니다. 필요한 친구들이 참고할 수 있습니다.

지식 포인트:

 1-파일 로딩

 2- 오류 처리



파일 로드

파일 로드 문

  1) 4개 파일 로드 문: include, require, include_once, require_on ce

  2) 사용 형태 같은. include "로드할 파일의 전체 경로"; 또는 include ("로드할 파일의 전체 경로 ")

   예: include "d:/index.php";

  3 )

로드 가능 가져온 파일: php 또는 html 파일

경로

  1)

상대 경로: 현재 웹 페이지 파일

  ./의 위치를 ​​기준으로 로드된 파일을 나타냅니다. 현재 위치, 즉 현재 웹 페이지 파일이 있는 위치(디렉토리)

   ../ : 현재 웹 페이지 파일이 있는 위치의 상위 위치(디렉터리)를 나타냅니다.

  2)

절대 경로

   로컬 절대 경로: include "d:/demo/index.php";

  절대 네트워크 경로: include "http://www.baidu .com/demo/index.php"

 3) 경로, 직접 파일 이름을 쓰지 마세요

                                                               gunreycular innians >>

step 1: 从include|require 语句处退出PHP脚本模式(进入html代码模式)
step 2:载入include|require 语句所设定的文件中的代码,并执行
step 3:退出html模式重新进入php脚本模式,继续之后的代码
로그인 후 복사

  include, include_once, require, require_once

 1의 차이점 ) include와 require의 차이점 또는 include_once와 require_once의 차이점

  include 또는 include_once가 파일을 로드하지 못한 경우(즉, 파일을 찾을 수 없습니다. ㅋㅋㅋ 그녀 n Shen Shen Shen Shen Shen은 그녀의 프로그램에서 스스로 할 수 있는 목자를 내보냅니다.

 2) inlcude와 include_once 또는 require와 require_once의 차이점

   include 또는 require로 로드한 파일

은 중복 여부를 판단하지 않습니다

. 즉, 반복적으로 로드될 수 있습니다.

   include_once 또는 require_once에 의해 로드된 파일에는 "이전 코드"가 로드되었는지 확인하는 내부 판단 메커니즘이 있습니다. 로드된 경우 다시 로드되지 않습니다.常 常: ​​​​웹 페이지 양쪽에 동일한 광고가 있는 경우에는 include를 사용하여 파일 내 파일에서 사용합니다.) 로드가 성공적으로 수행된 경우에는 include, requistener, include_once, require_once 로드 문을 사용합니다. return, 1, 1, 1, return 1, return 1, 1, 1 로딩에 실패하면 false를 반환  2) 로드된 파일에 리턴이 있는 경우 리턴 이후의 파일 내용은 로드되지 않습니다. - 로딩 종료

    사용 가능: 로드된 파일 로드 파일이 데이터를 반환합니다

오류 처리 오류 분류

1) 구문 오류

검사를 통과한 후 프로그램을 실행하면 시작됩니다. 프로세스 중 오류

   오류의 세 가지 일반적인 유형: 프롬프트 오류, 경고 오류, 치명적인 오류
 3) 논리 오류  프로그램 자체는 정상적으로 실행될 수 있으며 오류가 보고되지 않습니다. 하지만 원하는 결과는 아닙니다.

  错误分级

  1) 技术层面的错误分级: PHP语言中,将各种错误进行了不同级别的分类归纳

    每一级别的错误,都有一个“代号”,这个代号是系统内部的一个“常量”

  2)系统常见错误

       E_ERROR: 致命错误
       E_WARNING: 警告性错误
       E_NOTICE: 提示性错误

  3) 用户自定义错误

    E_USER_ERROR: 自定义致命错误
    E_USER_WARNING: 自定义警告性错误
    E_USER_NOTICE: 自定义提示性错误

  4) 其他

    E_STRICT: 严谨性语法检查错误
    E_ALL: 代表所有错误

  详细参考手册: 函数参考》影响PHP行为的扩展》错误处理和日志记录》预定义常量

 1 <?php 
 2 function getBinStr($e) { 
 3     $s = decbin($e);  //这是一个二进制数字字符串 
 4     /* 
 5         str_pad($str1,长度n,$str2,位置w)函数: 
 6             将字符串$str1,用字符串$str2填充到指定的长度n, 
 7             可以指定填充的位置w,左边填充还是右边填充 
 8     */ 
 9     $s1 = str_pad($s,16,"0",STR_PAD_LEFT);
 10     return $s1;
 11 }
 12     echo "<pre class="brush:php;toolbar:false">";
 13     echo "E_EEROR = ".E_ERROR . "\t\t其对应二进制值为: " . getBinStr(E_ERROR);   //1
 14     echo "<br />E_WARNING = ".E_WARNING. "\t\t其对应二进制值为: " . getBinStr(E_WARNING);  //2
 15     echo "<br />E_NOTICE = ".E_NOTICE. "\t\t其对应二进制值为: " . getBinStr(E_NOTICE);   //8
 16     echo "<br />E_USER_NOTICE = ".E_USER_NOTICE. "\t\t其对应二进制值为: " . getBinStr(E_USER_NOTICE);   //1024
 17     echo "<br />E_ALL = ".E_ALL. "\t\t其对应二进制值为: " . getBinStr(E_ALL);   //32767
 18     echo "
"; 19 ?>
로그인 후 복사

查看错误分级对应的二进制数测试

  错误触发

  1) 方式1: 系统触发

    典型错误3种:

      E_NOTICE: 提示性错误: 会输出错误提示,并继续执行后续代码;如:使用不存在的变量或常量

      E_WARNING: 警告性错误: 会输出错误提示,并继续执行后续代码; 如: include载入一个不存在的文件:

      E_ERROR: 致命错误: 导致程序无法执行后续语句; 如: 一个不存在的函数!!

  2) 方式2: 自定义触发

    1) 概念: 当处理某些数据时,数据本身没有错误,但根据具体应用(业务)的需要,会要求数据满足某种条件,而该数据并不满足的时候,可以在程序中“主动”去触发(创建)一个错误,以表明该数据的“非法性”。

    2) 语法形式: trigger_error(“错误提示信息内容”,3种用户错误代号之一);  

      如果触发了用户的致命错误(E_USER_ERROR),会终止程序的后续执行

  错误报告的显示

  1) 错误报告: 显示在网页上的错误提示内容

  2) 是否显示错误报告 ? display_errors

    方式1:全局设置

      修改配置文件php.ini 的配置项 display_errors = On; //表示显示 如果是Off表示关闭

    方式2: 局部设置

      在php脚本文件中使用函数ini_set()来对它进行设置; 如 ini_set("display_errors",0); //不显示错误报告

      该方式设置要优先于全局设置

  3) 显示哪些级别的错误报告? error_reporting

    前提: display_errorrs=On;

    方式1: 全局设置

      修改配置文件php.ini 的配置项error_reporting, 如 : error_reporting = E_NOTICE | E_WARNING | E_ERROR

    方式2: 局部设置

      在php脚本文件中使用函数ini_set()来对它进行设置 , 如init_set(“error_reporting”,E_NOTICE | E_WARNING | E_ERROR),

  错误日志的记录

  1)是否记录错误日志? log_errors

    方式1: 全局设置

      修改配置文件php.ini 的配置项log_errors, 如 : log_errors= On; //记录错误日志

    方式2: 局部设置

      在php脚本文件中使用函数ini_set()来对它进行设置 , 如init_set(“log_errors”,1);//记录错误日志

      获取php.ini配置项: ini_get("配置项"); //获取php.ini的指定配置项值

  2)记录到哪里? error_log

    可以指定位置或记录到系统日志中

    指定位置文件中:直接使用文件名,系统会自动在文件夹下都建立该文件名,并用其记录该文件夹下的所有网页文件发生的错误信息

        ini_set("error_log", "myError.txt"); //如果有错误,将记录在myError.txt文件中

    写入系统日志中:  ini_set("error_log", "syslog");//所有错误日志记录到系统 日志文件 中

  自定义错误处理器

  1)错误处理器: 发生错误,用来处理该错误的一种方法。实质就是一个函数

  2) 自定义错误处理器: 将原本有系统处理错误变为开发者自定义对错误显示和记录处理

  3) 分2步:

    step 1: 设定用于处理错误的函数 set_error_handler("函数名"); 如 set_error_handler('myError');

    step 2: 声明定义处理错误的函数。 如 function myError($errCode, $errMsg, $errFile, $errLine) { //错误处理 }

 1 <?php 
 2 //自定义错误处理器 
 3 //第一步: 设定要作为错误处理的函数名 
 4 set_error_handler("my_error_handler"); 
 5  
 6 //第2步: 定义函数 
 7  /** 
 8   * 自定义错误处理函数 
 9   * 该函数不要在程序中调用,一发生错误会被自动调用,而且会传入该4个实参数据
 10   * @param  string $errCode 错误代号(级别)
 11   * @param  string $errMsg  错误信息的内容
 12   * @param  string $errFile 发生错误的文件名
 13   * @param  int $errLine  代表发生错误的行号
 14   * @return void
 15   */
 16 function my_error_handler($errCode,$errMsg,$errFile,$errLine) {
 17     $str = &#39;&#39;;
 18     $str .= "<p><b><font color=&#39;red&#39;>错误:</font></b>";
 19     $str .= "<br />错误代号是:".$errCode;
 20     $str .= "<br />错误内容是:".$errMsg;
 21     $str .= "<br />错误文件是:".$errFile;
 22     $str .= "<br />错误行号是:".$errLine;
 23     $str .= "<br />发生的时间:".date("Y-m-d H:i:s");
 24     $str .= "</p>";
 25     echo $str;     //输出该“构建”的错误完整处理结果
 26                    //可以将该内容写入到某个文件去,既记录错误日志
 27 }
 28 
 29 //以下是错误代码
 30 echo "<br />aaaa";
 31 echo $v1;   //使用不存在的变量
 32 echo C1;    // 使用不存在的常量
 33 echo "<br />bbbb";
 34 echo "<hr />";
로그인 후 복사

点击查看自定义错误处理器测试

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

PHP基本语法的介绍

PHP的环境搭建 的方法

위 내용은 PHP 파일 로딩 및 오류 처리 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿