PHP 매뉴얼
이전 | 10. 장. 연산자 | 다음

# 에러 제어 연산자

PHP는 에러 제어 연산자를 지원한다: 앳 부호 (@). PHP에서 표현식의 앞에 덧붙이면, 그 표현식에서 발생할수 있는 에러 메시지가 출력되지 않도록 한다. track_errors 기능은 활성화되어있으면, 표현식에서 발생하는 모든 에러는 $php_errormsg변수에 저장될것이다. 이 변수는 에러가 발생할 때마다 덮어씌어질것이고, 그래서 이 변수를 사용하려면 바로바로 확인해야 한다.

`<?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` 등에 이 부호를 덧붙일수는 없다.

error_reporting()함수와 Error Handling and Logging functions에 관한 매뉴얼 섹션을 참고.

> 참고: "@" 에러-제어 연산자는 해석 에러로 인한 에러 메시지를 가릴수는 없을것이다.

주의
현재 "@" 에러-제어 연산자는 스크립트 수행을 멈출수 있는 심각한 에러에 대한 에러 메시지들도 보이지 않게 할것이다. 이말의 의미는 어떤 함수에서 에러 메시지를 보이지 않게 하려하려고 "@"을 사용했고 그 함수가 가용하지 않거나 오타를 쓴것일지라도 이 스크립트는 에러 원인에 대한 메시지 없이 그자리에서 즉시 멈추게 될것이다.

이전 | 처음으로 | 다음
비교 연산자 | 위로 | 실행 연산자