728x90
반응형
PHP 는 에러제어연산자(@)를 서포트하고 있습니다. PHP 의 식 앞에 붙은 경우, 그 식에 의해 생성된 에러메세지는 무시됩니다.
set_error_handler 에서 직접 에러 핸들러를 설정한 경우에는 에러제어연산자가 있어도 그 에러 핸들러가 불러집니다. 그러나, 직접 만든 에러 핸들러 안에서 error_reporting() 메소드를 부르면, @ 달린 식으로 생성된 에러의 경우에는 반환값이 0이 되므로 그 값으로 구별할 수 있습니다.
track_errors 기능이 유효한 경우에는 식에 의해 생성된 에러 메세지는 글로벌 변수 $php_errormsg 에 저장됩니다. 그 변수는 에러가 생성될때마다 값이 변합니다. 그렇기 때문에 그 변수를 사용하고 싶을 경우에는 신속하게 확인할 필요가 있습니다.
<?php
/* 의도적에러 */
$my_file = @file ('non_existent_file') or
die ("Failed opening file: error was '$php_errormsg'");
// 이 연산자는 함수뿐만 아니라 모든 식에 사용됩니다.
$value = @$cache[$key];
// 인덱스 $key 가 존재하지 않을 경우 경고가 발생하지 않습니다.
?>
참고사이트
https://www.php.net/manual/en/language.operators.errorcontrol.php
https://www.php.net/manual/ja/language.operators.errorcontrol.php
728x90
반응형
'PHP' 카테고리의 다른 글
[PhpStorm] Codeigniter 설정 (0) | 2020.09.09 |
---|---|
[PHP][Error]PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 16777224 bytes) (0) | 2020.09.04 |
[PHP]PHP 에서 세션은 서버 어디에 저장 될까? (0) | 2020.08.26 |
[Php][mysqli]mysqli free_result (0) | 2020.08.13 |
[PHP][OOP]코드 따라 쳐보기 (0) | 2020.08.05 |