키 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!