나는 wamp를 사용하여 PHP 응용 프로그램을 개발하고 있습니다. 내 문제는 때때로 값을 가지지 않는 변수를 호출 할 때마다 정의되지 않은 인덱스라는 오류가 발생한다는 것입니다. 이 오류를 표시하지 않도록 오류보고를 변경하는 방법이 있습니까? 변수를 출력하기 전에 isset을 사용하여 변수의 설정 여부를 결정해야하지만이 작업을 수행하고 싶지는 않습니다. 이 방법을 비효율적으로 만드는 내 응용 분야가 있습니다.WAMP 및 PHP에서 정의되지 않은 색인 오류보고
답변
php.ini에서 메커니즘을 해제 할 수 있습니다.
이 스레드가 도움이 될 것입니다.
http://www.wampserver.com/phorum/read.php?2,70609,70700
그러나 그들은 당신에게 약간의 실행 시간 수고를 덜 수로 일반적으로는 잘 정의되지 않은 변수 알아서합니다.
업데이트 : php.ini의 변화에
는 error_reporting = E_ALL error_reporting은 = E_ALL & ~ E_NOTICE에
상황을 잘못 설명했을 수도 있습니다. 내가하고 싶은 일은 정의되지 않은 변수 대신 호출 될 때 오류를 반환하고, 빈 문자열 ($ x = '') 또는 그와 비슷한 것으로 반환되도록하고 싶습니다. 오류 보고서의 스타일을 변경하지 않습니다. – ShoeLace1291
이 주위에 얻을 수있는 여러 가지 방법이 있습니다 :
error_reporting(0)
사용이 상단은 스크립트
설정 display_errors = Off
에서 php.ini
오류 012를 생성하는 문장 앞에 '@'를 사용하십시오 당신이 사소한 뭔가를 작성하지 않는 3,
하지만 당신은 절대적으로 는 사용자가 보낸 모든 것을 array_key_exists
또는 if(!empty($arrayName['key']))
를 사용해야합니다.
error_reporting 수준을 변경하지 않으려면 사용하기 전에 변수가 있는지 확인해야합니다.
if(isset($var))
을 사용할 수 있습니다. 항상 쓸 수있는 기능을 추가 할 수 있습니다. 예 :
는function getPost($name,$default=null){
return isset($_POST[$name])?$_POST[$name]:$default;
}
사용법 :
getPost('id');
getPost('name','Not Logged In');
이 시도 :
경우 (는 isset ($ var에)!의) $ VAR = "";
의 php.ini 파일 모두에 존재 :
빈 \ PHP는 \의 php5.x
및
빈 \ 아파치는 \ apache2.x \ 빈은
수 으로 변경하면 아파치 폴더 버전이 변경됩니다..
또한 설정 :
display_errors를 해제 =
display_startup_errors = 오프
는 error_reporting = E_ALL
log_ errors = On
클라이언트에 오류가 표시되지만 오류 로그에 기록 될 수 있습니다.
PHP가 생성하는 모든 경고 (표시되지 않은 경우에도)가 성능 저하를 초래한다는 것을 알고 있습니까? 비효율적 인 이야기 ... –