이전 글에서는 "PHP에서 이미지 워터마크를 추가하는 방법을 이해해야 합니다"를 가져왔는데, 예제를 통해 PHP에서 워터마크를 추가하는 방법을 자세히 소개했습니다. PHP의 오류 처리에 대한 지식이 도움이 되기를 바랍니다!
PHP의 오류 및 예외 처리는 PHP에서 매우 일반적으로 사용됩니다. 일상적인 개발에서 세미콜론 추가를 잊어버리거나, 잘못된 함수 이름을 작성하거나, 함수가 재정의되는 등의 문제를 확실히 접하게 됩니다. .. 오류가 많은데, 개발 과정에서 오류를 발견하고 표시해 준다면 분명 우리 개발에 큰 도움이 될 것입니다.
그러므로 프로젝트를 개발할 때 프로세스를 올바르게 사용하면 오류를 찾아 수정하여 개발 속도를 높이는 데 도움이 됩니다. 그런 다음 오류 처리를 이해하는 방법을 살펴보겠습니다. 무료 "php 오류 처리" 교육 영상을 통해서도 학습하실 수 있습니다.
PHP의 예외 처리 클래스
PHP는 Exception
이라는 내장 예외 처리 클래스를 제공합니다. 이 클래스에는 예외 처리를 위한 몇 가지 함수가 포함되어 있습니다. 잡힐 수 있습니다. Exception
,这个类包含了一些处理异常的函数,这些函数可以捕获程序异常和错误。
那下面列举出该类中较为常用的函数:
getTraceAsString()
:返回已格式化成字符串的、由函数 getTrace() 函数所产生的信息__toString()
:产生异常的字符串信息,它可以重载。注意,该函数最前部是两个下划线getMessage()
:返回异常的消息内容getLine()
:返回发生错误的代码行号getCode()
:以数字形式返回异常代码getFile()
:返回发生异常的文件名getTrace()
:返回 backtrace() 数组
捕获程序中的异常
程序中的异常出现一般不会自己显现出来,这时候我们可以通过try catch
语句和 throw
-
getTraceAsString()
: 형식화된 문자 반환 문자열 정보 getTrace() 함수에 의해 생성됨 -
__toString()
: 예외를 생성하는 문자열 정보로 오버로드될 수 있습니다. 이 함수 앞에 두 개의 밑줄이 있습니다 getMessage()
: 비정상적인 메시지 내용을 반환합니다getLine ()
: 오류가 발생한 코드 줄 번호를 반환-
getCode()
: 예외 코드를 숫자 형식으로 반환 -
getFile()
: 예외가 발생한 파일 이름을 반환 getTrace()
: backtrace() 배열을 반환li>
프로그램 내 예외 포착
프로그램 내 예외는 일반적으로 저절로 나타나지 않습니다. 이때 try catch
문과 throw
키워드는 프로그램에서 예외를 포착하는 목적을 달성하기 위한 것입니다. try catch 문은 흐름 제어 문과 유사합니다. throw 키워드는 조건 선택과 유사한 구조를 통해 프로그램에서 예외를 포착할 수 있습니다. try catch 문의 구문 형식은 다음과 같습니다.
try{ // 可能出现异常或错误的代码,比如文件操作、数据库操作等 }catch(Exception $a){ // $a 为一个异常类的对象 // 输出错误信息 }프로그램 예외를 잡아야 할 경우, 잡아야 하는 코드를 try 코드 블록에 넣어야 합니다. 위 구문에서 각 시도는 다음 위치에 있어야 합니다. 적어도 하나의 해당 캐치. try 코드 블록이 일치하는 예외를 포착하지 못하면 코드는 마지막 포착으로 점프하여 계속됩니다.
예제는 다음과 같습니다.
<?php try{ $err = '抛出异常信息,并跳出 try 语句块'; if(is_dir('./demo')){ echo '这里是一些可能会发生异常的代码'; }else{ throw new Exception($err, 20211020); // 抛出异常 } echo '上面抛出异常的话,这行代码将不会执行,转而执行 catch 中的代码。<br>'; }catch(Exception $e){ echo '捕获异常:'.$e->getMessage().'<br>错误代码:'.$e->getCode().'<br>'; } echo '继续执行 try catch 语句之外的代码'; ?>출력 결과:
위 예에서는 try 문을 사용하여 현재 디렉터리에 데모라는 디렉터리가 있는지 확인합니다. 존재하지 않으므로 throw 키워드가 실행되었습니다. 예외가 발견되어 발생한 후에는 try 문의 나머지 문이 실행되지 않습니다.
🎜🎜자신만의 예외 클래스 만들기🎜🎜🎜🎜🎜 PHP에서는 예외를 적극적으로 발생시키는 경우가 거의 없으므로 사전에 if-else를 사용하여 처리할 수 있습니다. . 가능한 예외를 판단하고 예외를 수동으로 발생시킵니다. PHP에서는 우리가 직접 만든 예외 클래스를 자주 사용할 수 있습니다. 🎜🎜🎜예는 다음과 같습니다. 🎜🎜<?php class emailException extends Exception{ function __toString(){ return "<b>email is null</b>file:".$this->getFile().',line:'. $this->getLine(); } } class nameException extends Exception{ } ?>🎜위의 예에서는 두 개의 예외 클래스가 정의되어 있으며 둘 다 Exception 기본 클래스에서 상속됩니다. 🎜🎜실제 비즈니스에서도 필요에 따라 다양한 예외를 발생시킵니다. 예는 다음과 같습니다: 🎜
function reg($reg) { if (empty($reg['email'])) { throw new emailException("emaill is null", 1); } if(empty($reg['name'])) { throw new nameException("name is null", 2); } }🎜비즈니스 코드를 실행할 때 if 문을 사용하여 예외가 발생할 위치를 확인한 다음 수동으로 예외를 발생시킬 수 있습니다. , 다른 예외는 명령문을 통해 처리하기 위해 다른 예외 클래스에 배포됩니다. 다음 예에서는 다른 상황에 따라 다른 예외가 캡처됩니다. 프로그램에 여전히 다른 예외가 있더라도 다른 예외를 포착합니다. 블록도 건너뜁니다. 프로그램에 예외가 있는지 여부에 관계없이 finally finally에 있는 문이 실행됩니다. 예는 다음과 같습니다: 🎜🎜
try{ $reg = array('phone'=>'1888888888'); reg($reg); } catch(emailException $e) { echo $e; } catch(nameException $e) { echo 'error msg:' .$e->getMessage().'error code:'.$e->getCode(); } finally { echo ' finally'; }🎜 PHP에 대해 더 알고 싶다면 "🎜PHP 비디오 튜토리얼🎜"을 클릭하여 배울 수 있습니다! 🎜
위 내용은 PHP의 예외 처리가 무엇인지 보여주는 5분의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

phpidifiesauser의 sssessionusessessioncookiesandssessionids.1) whensession_start () iscalled, phpgeneratesauniquessessionStoredInacookienamedPhpsSessIdonSeuser 'sbrowser.2) thisidallowsphptoretrievessessionDataTromServer.

PHP 세션의 보안은 다음 측정을 통해 달성 할 수 있습니다. 1. Session_REGENEREAT_ID ()를 사용하여 사용자가 로그인하거나 중요한 작업 일 때 세션 ID를 재생합니다. 2. HTTPS 프로토콜을 통해 전송 세션 ID를 암호화합니다. 3. 세션 _save_path ()를 사용하여 세션 데이터를 저장하고 권한을 올바르게 설정할 보안 디렉토리를 지정하십시오.

phpsessionfilesarestoredInTheRectorySpecifiedBysession.save_path, 일반적으로/tmponunix-likesystemsorc : \ windows \ temponwindows.tocustomizethis : 1) austession_save_path () toSetacustomDirectory, verlyTeCustory-swritation;

toretrievedatafromAphPsession, startSessionstart_start () andaccessvariblesinthe $ _sessionArray.forexample : 1) startthessession : session_start (). 2) retrievedata : $ _ session [ 'username']; echo "Welcome,". $ username;

세션을 사용하여 효율적인 쇼핑 카트 시스템을 구축하는 단계에는 다음이 포함됩니다. 1) 세션의 정의와 기능을 이해합니다. 세션은 요청에 따라 사용자 상태를 유지하는 데 사용되는 서버 측 스토리지 메커니즘입니다. 2) 쇼핑 카트에 제품 추가와 같은 기본 세션 관리를 구현합니다. 3) 제품 수량 관리 및 삭제 지원 고급 사용으로 확장; 4) 세션 데이터를 지속하고 보안 세션 식별자를 사용하여 성능 및 보안을 최적화합니다.

이 기사는 PHP의 인터페이스를 생성, 구현 및 사용하는 방법을 설명하여 코드 구성 및 유지 관리에 대한 이점에 중점을 둡니다.

이 기사에서는 PHP의 암호 해싱에 대한 Crypt ()와 Password_hash ()의 차이점에 대해 논의하여 최신 웹 애플리케이션에 대한 구현, 보안 및 적합성에 중점을 둡니다.

기사는 입력 유효성 검사, 출력 인코딩 및 OWASP ESAPI 및 HTML 청정기와 같은 도구를 통해 PHP의 크로스 사이트 스크립팅 (XSS) 방지에 대해 논의합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
