>백엔드 개발 >PHP 튜토리얼 >정의되지 않음은 무엇을 의미합니까? PHP 정의되지 않은 인덱스 오류를 수정하는 방법은 무엇입니까?

정의되지 않음은 무엇을 의미합니까? PHP 정의되지 않은 인덱스 오류를 수정하는 방법은 무엇입니까?

WBOY
WBOY원래의
2016-07-29 08:46:093268검색

이 메시지는 오류 표시 모드를 설정하여 숨길 수 있지만 여기에도 숨겨진 위험이 있습니다. 즉, 이러한 메시지가 서버 로그에 기록되어 로그 파일이 비정상적으로 커지게 됩니다.
우선 이는 오류가 아니라 경고입니다. 따라서 서버를 변경할 수 없는 경우 각 변수를 정의한 후 사용해야 합니다. 인터넷에는 여러 가지 인기 있는 솔루션이 있습니다.
방법 1: 서버 구성을 수정합니다. php.ini 구성 파일 error_reporting = E_ALL & ~E_NOTICE를 수정합니다.
방법 2: 변수를 초기화하고 표준화된 방식으로 작성합니다(변수의 수가 많아 더 번거롭습니다). 하지만 아직 좋은 정의 방법을 찾지 못했는데, 조언 부탁드립니다.
방법 3: 각 파일의 헤더에 error_reporting(0)을 추가합니다. 그래도 작동하지 않으면 php.ini를 열고 display_errors를 찾아 display_errors = Off로 설정하세요. 향후 오류는 표시되지 않습니다.
방법 4: 판단: isset($_GET["page"]) if-else 판단. 또는 오류나 경고가 있는 경우 이 줄이 출력되지 않아야 함을 나타내려면 '@'을 추가하세요. 예: @$page=$_GET["page"]
방법 5: file1.php 파일은 $xx 변수에 값을 할당하고 file2.php에 post가 없으면 이를 file2.php에 전달합니다. $xx의 정의, $yy=$xx;를 직접 사용하는 경우 시스템은 "정의되지 않은 변수 $xx"라는 오류를 보고합니다. file2.php 파일이 $xx="";로 정의되기 시작하면 그러면 file1.php의 $xx 값을 전달할 수 없습니다. file2.php에서 할 수 있습니다: if(!isset($xx)) $xx="";
위 방법이 사용하기 쉽지 않다고 생각되면 다음 방법을 사용할 수도 있습니다.

코드 복사 코드는 다음과 같습니다.


function _get($str){
$val = !empty($_GET ['str']) ? $_GET['str'] : null;
return $val;
}


이러한 함수를 정의한 다음 _get('str'을 사용하세요. 직접 사용할 때) $_GET['str'] 대신에 ~하면 더 편리할 것입니다.

위 내용은 정의되지 않은 것이 무엇인지, 정의되지 않은 것이 무엇인지 포함하여 PHP 정의되지 않은 인덱스 오류를 수정하는 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.