현재 위치: > 최신 기사 목록> key_exists 함수를 사용할 때 배열을 정의하지 않은 채로 인한 오류를 피하는 방법은 무엇입니까? PHP 오류 방지 팁

key_exists 함수를 사용할 때 배열을 정의하지 않은 채로 인한 오류를 피하는 방법은 무엇입니까? PHP 오류 방지 팁

gitbox 2025-08-28

PHP 개발에서 배열을 처리 할 때 키가 존재하는지 여부를 결정해야합니다. key_exists () 함수는 일반적 으로이 작업을 수행하는 데 사용하는 첫 번째 선택 함수입니다. 그 목적은 지정된 키가 배열에 존재하는지 확인하는 것입니다. 그러나 key_exists ()를 사용하면 실수로 정의되지 않은 배열을 처리하는 경우 불필요한 오류 또는 경고가 발생할 수 있습니다. 따라서 key_exists ()를 사용할 때 배열 미정 오류를 피하는 방법을 이해하는 것이 중요합니다.

1. key_exists () 함수 기본 사항

key_exists ()는 특정 키 값이 배열에 존재하는지 확인하는 함수입니다. 기본 구문은 다음과 같습니다.

 <span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">key_exists</span></span><span> ( </span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> , </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$array</span></span><span> )
</span></span>
  • $ 키 : 확인할 배열 키 이름입니다.

  • $ 배열 : 대상 배열.

이 함수는 부울 값을 반환하고, 진실은 키가 존재한다는 것을 의미하며 , 거짓은 키가 존재하지 않는다는 것을 의미합니다.

2. 오류를 일으키는 일반적인 시나리오

실제 개발에서 때로는 배열이 올바르게 초기화되지 않았거나 전혀 존재하지 않는 상황을 만날 수 있습니다. 현재 key_exists ()을 호출하면 직접 경고가 유발됩니다. 예를 들어:

 <span><span><span class="hljs-variable">$key</span></span><span> = </span><span><span class="hljs-string">'name'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$user</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Key exists!"</span></span><span>;
}
</span></span>

$ 사용자 배열이 정의되거나 초기화되지 않은 경우 PHP는 "정의되지 않은 변수"또는 "배열의 정의되지 않은 인덱스에 액세스하려고 시도하는 것"과 같은 오류를 던집니다.

3. 정의되지 않은 배열로 인한 오류를 피하는 방법

위의 문제를 피하려면 key_exists ()를 사용하기 전에 배열이 제대로 초기화되었는지 확인해야합니다. 오류를 피하는 몇 가지 방법이 있습니다.

3.1 배열이 정의되어 있는지 확인하십시오

key_exists ()을 호출하기 전에 먼저 isset () 또는 empty () 함수를 사용하여 배열이 정의되어 있는지 확인할 수 있습니다.

 <span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$user</span></span><span>) &amp;&amp; </span><span><span class="hljs-title function_ invoke__">key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$user</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Key exists!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Array is not defined or key doesn't exist."</span></span><span>;
}
</span></span>

ISSET ()는 변수가 초기화되었고 NULL 이 아닌지 확인합니다. 배열이 정의되지 않거나 비어 있으면 isset ()가 false를 반환하여 정의되지 않은 배열에 대한 액세스를 피합니다.

3.2 key_exists () 대신 array_key_exists ()를 사용하십시오.

array_key_exists () 라는 PHP에는 Key_exists () 와 정확히 동일하게 작동하지만 array_key_exists ()를 사용하는 것이 좋습니다. 이전 버전의 PHP에서 더 호환되며 공식 문서에서 권장되는 표준 기능이므로 일반적으로 array_key_exists ()를 사용하는 것이 좋습니다.

 <span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$user</span></span><span>) &amp;&amp; </span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$user</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Key exists!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Array is not defined or key doesn't exist."</span></span><span>;
}
</span></span>

3.3 기본값의 안전한 사용

PHP에서는 사용할 수 있습니다 . 연산자 (NULL 병합 연산자)를 사용하여 정의되지 않은 배열 요소에 대한 기본값을 제공합니다. 정의되지 않은 경우 오류를 피합니다.

 <span><span><span class="hljs-variable">$userName</span></span><span> = </span><span><span class="hljs-variable">$user</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>] ?? </span><span><span class="hljs-string">'기본값'</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$userName</span></span><span>;
</span></span>

이 연산자의 목적은 $ user [$ key]가 정의되고 null이 아닌 값을 반환하는 것입니다. 그렇지 않으면 '기본값'을 반환하십시오.

3.4 배열을 초기화합니다

가장 간단한 방법은 배열을 사용하기 전에 초기화하는 것입니다. 배열의 빈 배열을 정의하여 배열의 초기화 작업이 실수로 누락되지 않도록 할 수 있습니다.

 <span><span><span class="hljs-variable">$user</span></span><span> = </span><span><span class="hljs-variable">$user</span></span><span> ?? [];  </span><span><span class="hljs-comment">// 만약에$user정의가 없습니다,빈 배열로 초기화하십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$user</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Key exists!"</span></span><span>;
}
</span></span>

3.5 array_key_exists ()empty () 결합

경우에 따라 빈 ()을 사용하여 배열 또는 배열 요소가 비어 있지 않도록 할 수 있습니다. 빈 () 함수를 결합하여 불필요한 오류를 추가로 방지 할 수 있습니다.

 <span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$user</span></span><span>) &amp;&amp; </span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$user</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Key exists and value is not empty!"</span></span><span>;
}
</span></span>

이 방법은 정의되지 않은 배열을 피할뿐만 아니라 배열의 값이 비어 있지 않도록합니다.

4. 요약

key_exists ()를 사용하는 경우 정의되지 않은 배열로 인한 오류를 피하기 위해 키는 어레이를 작동하기 전에 배열이 올바르게 초기화되었는지 확인하거나 조건부 판단을 통해 배열이 존재하는지 확인하는 것입니다. 위의 오류 방지 기술을 통해 정의되지 않은 배열로 인한 오류를 효과적으로 피하고 코드의 견고성과 유지 관리 가능성을 향상시킬 수 있습니다.