728x90
<?php
echo 'hello'+'world';

위의 스크립트를 실행하면 어떻게 될까?

일단 문법적으로 제대로 실행되긴 하지만 php문자열은 계산시 0이므로 위의 코드는 0+0이 된다.



일단 인터프리팅을 하면 결과는 실행되는데 Warning메시지가 뜬다.

경우에 따라서는 Notice가 뜰때도 있다.

그 이유는 문자열의 덧셈은 권장사항이 아니기 때문이다. 보통 이런식으로는 안쓴다.

그리고 이러한 루틴들에 warning이나 notice가 걸려있는 경우가 많다.

그러나 이러한것이 의도한 것이라면 저 메시지가 웹브라우저상에 뜨는건 문제가 있다.

만약 이를 확인하고 의도한 바라면 에러메시지가 뜨지 않게 하는 방법이 세가지가 있다.


<?php
echo @('hello'+'world');


한가지 방법은 @로 감싸는 것이다. 변수라면 감쌀필요는 없다.

그러면 에러메시지는 출력되지 않는다.



만약 저런것 없이 설정자체로 출력하고 싶지 않다면 php.ini파일을 수정해줘야한다.



또다른 방법은 php.ini를 error_reporting를 위와 같이 수정후 php인터프리터를 작동시키는 것이다.

이미 켜져있다면 끈후에 다시 키면된다.


error_reporting  = E_ALL & ~(E_NOTICE | E_USER_NOTICE | E_WARNING | E_COMPILE_WARNING | E_CORE_WARNING | E_USER_WARNING) ;


이 방법은 에러메시지를 그냥 보고싶지 않다면 좋은 방법이지만 솔직히 권장하진 않는다.

위의 두가지 방법은 둘다 장단점이 있는데 필자생각에는 마지막 방법이 가장 좋은것 같다.


<?php
error_reporting(0);
echo 'hello'+'world';


error_reporting(0)를 호출해도 에러메시지가 작동하지 않는다.

따라서 보통의 경우 에러를 확인하는 모드로 작동시켜 둿다가 필요없어지는 순간에 저 코드를 추가하는 방식으로 사용한다. 

+ Recent posts