2011-08-29 9 views
2

나는 wamp를 사용하여 PHP 응용 프로그램을 개발하고 있습니다. 내 문제는 때때로 값을 가지지 않는 변수를 호출 할 때마다 정의되지 않은 인덱스라는 오류가 발생한다는 것입니다. 이 오류를 표시하지 않도록 오류보고를 변경하는 방법이 있습니까? 변수를 출력하기 전에 isset을 사용하여 변수의 설정 여부를 결정해야하지만이 작업을 수행하고 싶지는 않습니다. 이 방법을 비효율적으로 만드는 내 응용 분야가 있습니다.WAMP 및 PHP에서 정의되지 않은 색인 오류보고

+0

PHP가 생성하는 모든 경고 (표시되지 않은 경우에도)가 성능 저하를 초래한다는 것을 알고 있습니까? 비효율적 인 이야기 ... –

답변

1

php.ini에서 메커니즘을 해제 할 수 있습니다.

이 스레드가 도움이 될 것입니다.

http://www.wampserver.com/phorum/read.php?2,70609,70700

그러나 그들은 당신에게 약간의 실행 시간 수고를 덜 수로 일반적으로는 잘 정의되지 않은 변수 알아서합니다.

업데이트 : php.ini의 변화에 ​​

는 error_reporting = E_ALL error_reporting은 = E_ALL & ~ E_NOTICE에

+0

상황을 잘못 설명했을 수도 있습니다. 내가하고 싶은 일은 정의되지 않은 변수 대신 호출 될 때 오류를 반환하고, 빈 문자열 ($ x = '') 또는 그와 비슷한 것으로 반환되도록하고 싶습니다. 오류 보고서의 스타일을 변경하지 않습니다. – ShoeLace1291

0

이 주위에 얻을 수있는 여러 가지 방법이 있습니다 :
error_reporting(0) 사용이 상단은 스크립트
설정 display_errors = Off에서 php.ini
오류 012를 생성하는 문장 앞에 '@'를 사용하십시오 당신이 사소한 뭔가를 작성하지 않는 3,

하지만 당신은 절대적으로 사용자가 보낸 모든 것을 array_key_exists 또는 if(!empty($arrayName['key']))를 사용해야합니다.

3

error_reporting 수준을 변경하지 않으려면 사용하기 전에 변수가 있는지 확인해야합니다.

if(isset($var)) 

을 사용할 수 있습니다. 항상 쓸 수있는 기능을 추가 할 수 있습니다. 예 :

function getPost($name,$default=null){ 
    return isset($_POST[$name])?$_POST[$name]:$default; 
} 

사용법 :

getPost('id'); 
getPost('name','Not Logged In'); 
0

이 시도 :

경우 (는 isset ($ var에)!의) $ VAR = "";

0

의 php.ini 파일 모두에 존재 :

빈 \ PHP는 \의 php5.x

빈 \ 아파치는 \ apache2.x \ 빈은

으로 변경하면 아파치 폴더 버전이 변경됩니다..


또한 설정 :

display_errors를 해제 =

display_startup_errors = 오프

는 error_reporting = E_ALL

log_ errors = On

클라이언트에 오류가 표시되지만 오류 로그에 기록 될 수 있습니다.

관련 문제