PHP는 error control operator를 제공하는데 @
연산자로 사용할 수 있습니다.
PHP에서 표현식앞에 @
문자가 있으면 표현식에서 발생하는 어떤 에러메세지든
무시가 됩니다.
만약 set_error_handler()
로 커스텀 에러처리 함수를 세팅했다면 여전히 이 함수는
불러질 것이고@
에 의해 처리된 에러가 발생했을 때는 0
을 리턴하는
error_reporting()
을 호출할 수 있습니다.
만약 track_errors
기능이 활성화 되어 있다면 표현식에 의해 어느 에러메세지가 발생하면
$php_errormsg
에 저장될 것입니다. 이 변수는 각 에러에 의해 overwrite될 수 있기
때문에 이것을 사용할려면 체크하고 사용하여야 합니다.
<?php
/* Intentional file error */
$my_file = @file ('non_existent_file') or
die ("Failed opening file: error was '$php_errormsg'");
// this works for any expression, not just functions:
$value = @$cache[$key];
// will not issue a notice if the index $key doesn't exist.
?>
@
연산자는 오직 표현식에서만 작동합니다.@
를 사용할 수 있습니다.include
호출, 상수들에 사용할 수 있습니다.if
나 foreach
같은 조건문에는
사용할 수 없습니다.@
는 스크립트를 종료시키는 치명적인 에러들에 대한 에러 리포팅을
비활성화 합니다.@
를 사용하게 되면 오타가 났거나 혹은 에러가
발생했을 때 이유에 대한 알림없이 스크립트가 그 즉시 종료될 것입니다.
자바스크립트로 직접 만들면서 배우는 - 자료구조와 알고리즘 강의 바로 가기
실습으로 마스터하는 OAuth 2.0: 기본부터 보안 위험까지 - OAuth 2.0 강의 바로 가기
기계인간 이종립, 소프트웨어 개발의 지혜 - Git 강의 바로 가기
코드숨에서 매주 스터디를 진행하고 있습니다. 메일을 등록하시면 새로운 스터디가 시작될 때 알려드릴게요!