본문 바로가기

php

[php] @ character before function or variable

함수, 변수 앞에 붙는 @의 용도는 오류 제어 연산자이다.

 

@(골뱅이, at)을 php 표현식의 앞에 붙이면 표현에서 생성되는 모든 오류나 경고 메세지를 무시.

 

스크립트 실행을 종료하는 치명적인 오류에 대한 오류 보고도 꺼버리며,

예상하지 못한 오류까지 제어하므로 주의해서 사용

무슨 오류를 제어할건지 분명한 상황에서만 사용

 

@ 연산자를 사용할  있는 표현식 - 변수, 상수, 함수, include 호출 

함수 정의, 클래스 정의, if foreach 같은 조건부 구문 등에는 붙일  없음

 

@test(5);

@$test++;

@include(“test.php”);

// 간단 디버깅 
@print($test);

if (isset($test)) print($test); // 위와 같은 동작

 

실제 서비스되는 소스에서는 사용할 일이 없을 듯 하지만, 테스트 할 때에는 이런 식으로 사용해 볼 순 있을 것 같다. 

(어떠한 경우에 사용하면 적절할지 잘 모르겠다... 에러 로그를 남기는게 낫지 않나 하는 생각이 든다.)

if(@error_func($param)){
    //
}else {
    //
}