>백엔드 개발 >PHP 튜토리얼 >키 07과 08이 있는 PHP 배열이 예기치 않은 동작을 보이는 이유는 무엇입니까?

키 07과 08이 있는 PHP 배열이 예기치 않은 동작을 보이는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-20 19:34:021041검색

Why Do PHP Arrays with Keys 07 and 08 Exhibit Unexpected Behavior?

키 07 및 08의 PHP 배열 이상

다음과 같이 정의된 PHP 배열의 키 07 및 08에서 비정상적인 배열 동작 발생:

<code class="php">$months[01] = 'January';
$months[02] = 'February';</code>

print_r($months)을 사용하여 배열을 인쇄하려고 하면 키 07과 08이 누락되고 대신 September가 키 0으로 나타납니다.

이유 및 해결 방법

PHP에서는 0으로 시작하는 숫자 키가 8진수 값으로 해석되기 때문에 불규칙성이 발생합니다. 이는 07이 정수 7로 구문 분석되고 08이 8로 구문 분석됨을 의미합니다. 이 문제를 방지하려면 간단히 키에서 선행 0을 제거하면 됩니다.

<code class="php">$months[7] = 'July';
$months[8] = 'August';</code>

이렇게 하면 키가 제대로 인식됩니다. 배열은 예상대로 작동합니다.

다음 코드는 앞에 0을 사용하는 것과 사용하지 않는 것의 차이점을 보여줍니다.

<code class="php">echo 07; // prints 7
echo 010; // prints 8
echo 7; // prints 7
echo 10; // prints 10</code>

추가 참고 사항

이 동작은 UNIX 파일 권한을 지정할 때 일반적으로 사용됩니다.

<code class="php">chmod("myfile", 0660);</code>

그러나 다른 목적에는 거의 필요하지 않습니다. PHP 매뉴얼은 숫자 키와 8진수 값에 대한 자세한 내용을 제공합니다.

위 내용은 키 07과 08이 있는 PHP 배열이 예기치 않은 동작을 보이는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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