>  기사  >  백엔드 개발  >  PHP의 오류 유형은 무엇입니까?

PHP의 오류 유형은 무엇입니까?

藏色散人
藏色散人원래의
2020-08-20 09:54:443556검색

PHP의 오류 유형은 다음과 같습니다. 1. 프로그램 자체의 오류 3. 운영 체제로 인한 차이 5. SAPI 오류 8. 오류 처리기를 정의합니다.

PHP의 오류 유형은 무엇입니까?

추천: "PHP 동영상 튜토리얼"

PHP 오류 유형

먼저, 프로그램 자체의 오류

이런 종류의 오류는 다음과 같이 비교적 처리하기 쉬운 오류입니다. 문법 오류 또는 컴파일러가 이러한 오류를 구문 분석할 수 없습니다. 이러한 오류는 컴파일을 통과하지 못합니다. 그런 다음 오류 프롬프트에 따라 특정 오류 코드를 찾을 수 있습니다. 그러나 eval()을 사용하여 실행한 코드에 오류가 발생하면 컴파일 중에는 찾을 수 없으며 코드가 실행될 때까지만 기다릴 수 있으며 다음 코드를 실행하면 오류가 발생합니다. 실행 프로세스 오류:

<?php 
   echo "this will be echo to putty";
   eval("php error when parser");
 
?>

이 오류는 에코가 출력되기 전에 다른 코드 오류와 다릅니다. 컴파일이 통과되지 않고 실행되지 않으므로 다른 코드 오류에 대한 출력은 없습니다.

두 번째, 정의되지 않은 기호

PHP를 실행하면 PHP가 컴파일할 때 모든 기호 이름, 함수 이름 등을 완전히 이해하지 못하기 때문에 자신이 모르는 많은 변수, 함수 및 기타 이름이 발생할 수 있습니다.

정의되지 않은 상수나 변수일 경우 알림 형식일 뿐입니다. 그러나 정의되지 않은 함수나 클래스가 발견되면 프로그램이 종료됩니다. 찾을 수 없는 클래스에 대해 사용자가 __autoload라는 함수를 정의하면 PHP가 정의되지 않은 클래스를 발견할 때 호출됩니다. 이 함수를 통해 클래스를 반환할 수 있으면 새로 로드된 클래스가 사용됩니다.

세 가지 보편적인 오류

3.1 운영 체제로 인한 차이점

특수 플랫폼에서만 사용할 수 있는 일부 PHP 기능입니다.

특정 플랫폼에서는 사용할 수 없는 일부 PHP 기능입니다.

플랫폼마다 약간 다른 일부 PHP 함수.

파일 이름에서 경로 구성 요소를 구별하는 문자입니다.

일부 플랫폼에서는 외부 프로그램이나 서비스를 사용할 수 없습니다.

3.2 PHP 구성 차이점

예를 들어 Magic_quotes_gpc 구성 옵션이 켜져 있으면 PHP는 모든 외부 데이터에 슬래시를 추가합니다. 이때, 이 옵션을 활성화하지 않고 프로그램을 다른 서버에 이식하면 사용자 입력에 문제가 발생하게 됩니다. 유사한 차이점을 처리하는 방법은 PHP 코드를 확인하고 ini_get() 함수를 통해 옵션이 활성화되어 있는지 확인한 다음 통합 조정하는 것입니다.

register_globals : 이 설정은 PHP가 GET, POST, 쿠키, 환경 변수 또는 서버 변수를 전역 변수로 도입할지 여부를 결정합니다. 일반적으로 피합니다.

allow_url_fopen: 이 옵션을 false로 설정하면 URL 파일 운영 기능이 꺼집니다.

3.3 SAPI 차이점

4. 작업 오류

하드 디스크 데이터나 네트워크 작업 및 데이터베이스 호출 시 PHP 자체 이외의 요인으로 인해 발생하는 오류 등입니다.

5. PHP 오류

PHP의 오류 메커니즘은 모든 PHP 내장 함수에서 사용됩니다. 일반적으로 이 간단한 메커니즘은 일부 기본 오류 관련 정보를 포함하여 오류 메시지를 인쇄합니다.

오류 수준은 다음과 같이 나뉩니다.

E_ERROR:严重错误。
E_WARNING:最普通的错误类型。
E_PARSE:解析错误在编译的时候发生。
E_STRICT:这个错误级别是唯一不包含在E_ALL常量中的,为了让PHP4到PHP5的迁移更加容易。
E_NOTICE:表示运行的代码可能在操作一些未知的事情。
E_CORE_ERROR:由于扩展启动失败等导致的。
E_COMPILE_WARNING:编译的时候出现的警告,告诉用户一些不推荐使用的语法信息。
E_COMPILE_ERROR:编译错误。
E_USER_ERROR
E_USER_WARNING
可以用error_reporting(Integer)函数来设置哪些错误被报告。如所有的错误,表示为E_ALL ,除了通告以外的所有错误,可以表示为E_ALL & ~E_NOTICE.
display_errors(boolean):这个设置控制错误是否作为PHP输出的一部分显示出来。
log_errors(boolean),这个设置控制错误是否记录。日志的地址是通过error_log(String)设置决定的。默认情况下,错误被记录到WEB服务器的错误日志中。
html_errors(boolean):设置控制是否在错误信息中采用HTML格式 。

Six, 오류 처리기 정의

set_error_handler(error_handle_function,error_types)를 호출하여 오류 처리기를 지정할 수 있습니다. 예:

function customError($errno, $errstr, $errfile, $errline)
 { 
 echo "<b>Custom error:</b> [$errno] $errstr<br />";
 }
set_error_handler("customError"); // 默认为所有的错误,就是E_ALL.

위 내용은 PHP의 오류 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.