> 백엔드 개발 > PHP 튜토리얼 > PHP 공지 정의되지 않은 인덱스

PHP 공지 정의되지 않은 인덱스

WBOY
풀어 주다: 2024-08-29 13:00:59
원래의
794명이 탐색했습니다.

주의사항 PHP에서 정의되지 않은 인덱스는 실제로 존재하지도 않는 값이나 변수에 접근하려고 할 때 발생하는 오류입니다. 정의되지 않은 인덱스는 지속되지 않는 변수에 액세스하려고 할 때 발생하는 일반적인 오류입니다. 예를 들어, 인덱스에 액세스하려는 배열은 실제로 존재하지 않으므로 이 시나리오에서는 PHP에서 정의되지 않은 인덱스를 얻습니다. 여기서 정의되지 않음은 해당 값을 정의하지 않았으며 해당 값에 액세스하려고 함을 의미합니다.

광고 이 카테고리에서 인기 있는 강좌 PHP 개발자 - 전문 분야 | 8개 코스 시리즈 | 3가지 모의고사

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

PHP 공지 정의되지 않은 인덱스 구문

PHP에는 정의되지 않은 인덱스에 대해 정의된 구문이 없습니다. 왜냐하면 실제로 존재하지 않거나 할당된 값이 없는 코드의 값이나 변수에 액세스하려고 할 때 발생하는 일종의 오류이기 때문입니다. 코드 어딘가에 있는 값에 액세스하려고 합니다.

$myarray = array(value1, value2, value3, so on..)
$myarray[value_does_not_exists]
로그인 후 복사

위 구문에서는 배열에 존재하지 않는 키를 전달하여 배열에 액세스하려고 합니다. 따라서 런타임 시 정의되지 않은 인덱스 오류가 발생합니다.

프로그래밍하는 동안 이를 수행할 수 있는 방법의 한 가지 예를 살펴보겠습니다.

코드:

$myarray = array(100, 200, 300, 400)
$myarray[1000]
로그인 후 복사

이러한 방법으로 PHP에서 이 오류를 복제할 수 있지만 PHP에서 isst() 메서드를 사용하여 이러한 상황에서 코드가 작동하도록 하면 이러한 오류를 방지할 수 있습니다.

PHP에서 공지사항 정의되지 않은 색인은 어떻게 작동하나요?

현재로서는 정의되지 않은 인덱스가 일종의 예외이거나 PHP에서 오류라고 말할 수 있다는 것을 알고 있습니다. 프로그램에 실제로 존재하지 않는 변수에 액세스하려는 경우 이런 일이 발생합니다. 이 문제는 처리되어야 합니다. 그렇지 않으면 프로그램 신청 및 종료에 심각한 문제가 발생할 수 있습니다. 프로그램에서 이러한 종류의 오류를 처리하기 위해 PHP에는 몇 가지 메소드가 정의되어 있습니다.

여기서 샘플 코드와 그 작동 방식, 프로그램에서 이러한 현상이 발생하는 방식 및 처리 방법을 살펴보겠습니다.

예:

코드:

<?php
// Your code here!
$myarray = array('200','300','400', '500', '600', '700', '1000');
echo $myarray[4];
echo $myarray['Hello '];
?>
로그인 후 복사

위 코드 줄에서는 '$myarray'라는 배열 하나를 만들고 그 안에 일부 문자열 정수를 사용하여 해당 값을 초기화했습니다. 두 번째 줄에서는 할당된 값을 사용하여 배열의 변수에 액세스하려고 하며 인덱스도 사용합니다. 따라서 인덱스 '4'가 배열에 있으므로 이 줄은 예상대로 잘 작동하지만 이 줄 바로 뒤에는 키로 배열 요소에 액세스하려고 하는 또 다른 줄이 있습니다. 따라서 이 경우에는 라인 번호가 언급된 주의사항: 정의되지 않은 인덱스가 PHP에 표시됩니다. 이제 코드에서 이런 일이 발생하지 않도록 방지할 수 있는 방법을 살펴보겠습니다. 이를 위해 배열의 요소나 값에 액세스하기 전에 사용할 수 있는 PHP의 두 가지 방법이 있습니다.

방법은 아래와 같습니다.

1. 배열_키_존재()

이 방법은 해당 값에 액세스하기 전에 키가 배열 내부에 있는지 여부를 확인하는 데 사용됩니다. 이 방법은 배열 요소에 액세스하려고 할 때 사용할 수 있지만 이에 대해 확실하지 않습니다. 따라서 변수의 값을 사용하기 전에 이 방법을 사용하면 해당 요소나 키가 존재하는지 확인할 수 있습니다.

이 방법은 두 개의 매개변수를 입력 매개변수로 사용합니다. 첫 번째 줄은 키이고 두 번째 줄은 배열 자체입니다.

메소드의 구문을 살펴보겠습니다

서명:

array_key_exists(your_key, your_array)
로그인 후 복사

여기서 두 개의 매개변수를 전달합니다. 우리가 전달하는 키는 이를 전체 배열에 확인합니다. 반환 유형은 부울입니다. 키가 배열에 있으면 true를 반환하고, 키가 없으면 false를 반환합니다.

2. isset()

이 방법은 해당 값에 액세스하기 전에 변수가 프로그램에 설정되어 있는지 여부도 확인합니다. 또한 NULL 변수도 확인합니다. 두 가지 작업을 수행합니다. 첫 번째는 변수가 정의되어 있는지 확인하고 다른 하나는 NULL이 아니어야 한다는 것입니다.

서명:

isset(variables);
로그인 후 복사

여기서 프로그램에서 액세스하기 전에 확인하고 싶은 변수를 전달할 수 있습니다. 이 메서드의 반환 유형도 부울입니다. 변수를 찾았고 NULL이 아닌 경우 값만큼 true를 반환합니다. 이전 조건이 지정되지 않은 경우 False를 반환합니다.

PHP 공지 정의되지 않은 인덱스 예시

다음은 PHP 공지 정의되지 않은 인덱스의 예입니다.

예시 #1

이 예에서는 배열에 액세스하지 않는 키에 액세스하려고 하므로 프로그램 실행 중에 PHP에서 Notified Index 오류가 발생합니다.

코드:

<?php
// Your code here!
// creating an array here
$myarray = array(0=>'Hi',1=>'Hello',2=>'To', 3=>'All', 4=>'Stay', 5=>'Safe', 6=>'Enjoy !!');
//try to print values from array
echo $myarray[0]."\n";
echo $myarray[1]."\n";
echo $myarray[2]."\n";
//trying to access the element which does not exists.
echo $myarray['World']."\n";
?>
로그인 후 복사

출력:

PHP 공지 정의되지 않은 인덱스

Example #2

To prevent this error while occurring in program execution.

Code:

<?php
// Your code here!
// creating an array here
$myarray = array(0=>'Hi',1=>'Hello',2=>'To', 3=>'All', 4=>'Stay', 5=>'Safe', 6=>'Enjoy !!');
//try to print values from array
echo $myarray[0]."\n";
echo $myarray[1]."\n";
echo $myarray[2]."\n";
//trying to access the element which does not exists.
if(array_key_exists('World', $myarray)){
echo "Key exists in array !!";
}else {
echo "Key does not exists in array !! :)";
}
?>
로그인 후 복사

Output:

PHP 공지 정의되지 않은 인덱스

Conclusion

Notice Undefined Index is a kind of error we got in PHP when we try to access the non-existing element from the array or in our program. One more case is that it can occur when we try to access a NULL value in the program. So we can use two methods, isset() and array_key_exists() methods in PHP, to overcome this error in the application.

위 내용은 PHP 공지 정의되지 않은 인덱스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿