PHP는 오류제어 연산자 @
를 지원합니다.
오류 제어 연산자를 코드 앞에 붙여서 사용하면 발생된 오류 메시지를 무시하게 됩니다.
오류 메시지를 숨기는 이유는 접속자에게 오류 코드를 감추어 보안의 유효성을 높이는 효과가 있습니다.
예제 파일 opr-01.php
<?php
// php.ini의 수정 없이 화면에 에러 발생 시 출력할 수 있습니다.
error_reporting(E_ALL);
ini_set("display_errors", 1);
// test.php는 실제 존재하지 않는 파일입니다.
@include('test.php');
?>
화면 출력
위의 예제는 실제 존재하지 않는 파일을 include
하는 예제입니다.
실행 시 파일에 대한 오류 메시지를 출력합니다.
@include('test.php');
형태로 @
를 앞에 붙여서 실행하면 오류가 발생해도 화면에 출력하지 않습니다.
@
연산자를 사용할 때는 주의해야 합니다.
만일, 잘못된 사용으로 인해 오류가 출력하지 않을 때 프로그램의 문제를 해결하기란 매우 어렵습니다.
@
로 인하여 오류가 발생한 경우는 별도로 오류 메시지를 $php_errormsg
변수에 저장해 놓습니다.
예제 파일 opr-02.php
<?php
// php.ini의 수정 없이 화면에 에러 발생 시 출력할 수 있습니다.
error_reporting(E_ALL);
ini_set("display_errors", 1);
$my_file = @file ('testing.txt') or die($php_errormsg." = 오류를 출력합니다.");
?>
결과
Notice: Undefined variable: php_errormsg in C:\php-7.1.4-Win32-VC14-x86\jinyphp\opr-02.php on line 6
= 오류를 출력합니다.
오류 발생시 $php_errormsg
변수는 바로 사용
해야 합니다.
만일 여러 번의 오류가 발생할 경우 $php_errormsgs
는 새로운 오류 메시지로 덮어쓰게
됩니다.
$php_errormsgs
를 사용하기 위해서는 PHP의 환경 설정 php.ini
에서
track_error = on
상태일 때만 가능합니다.
지금까지 다양한 연산자와 예제를 통해 알아봤습니다.
연산자는 프로그램을 만드는 가장 기본적인 문법과 기능입니다.
연산자를 잘 구분하고, 문법을 습득하는 것은 앞으로 프로그램 코딩을 하면서 문법적인 오류를 줄이는 중요한 기초가 됩니다.
차근차근 기초부터 학습을 하면 좀 더 향상된 코드를 만들 수 있을 것입니다.