>백엔드 개발 >PHP 튜토리얼 >PHP 배열은 정수 변환 없이 숫자 문자열을 키로 사용할 수 있습니까?

PHP 배열은 정수 변환 없이 숫자 문자열을 키로 사용할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-02 09:55:12862검색

Can PHP Arrays Use Numeric Strings as Keys Without Integer Conversion?

PHP 배열에 문자열 정수 키 할당

PHP 배열을 사용하려면 일반적으로 문자열이나 정수인 키에 값을 할당해야 합니다. 그러나 질문이 생깁니다. PHP가 숫자 문자열을 정수로 변환하지 않고 숫자 문자열을 배열 키로 사용할 수 있습니까? 다음 예를 고려하십시오.

$blah = array('123' => 1);
var_dump($blah);

여기서 출력은 다음과 같습니다.

array(1) {
  ["123"]=>
  int(1)
}

키 '123'이 문자열로 표시됩니다. 그러나 실제 출력은 다음과 같습니다.

array(1) {
  [123]=>
  int(1)
}

이는 숫자 문자열 '123'이 정수 키 123으로 변환되었음을 보여줍니다.

PHP에서 숫자를 허용하지 않는 이유 문자열 키?

PHP에 따르면 manual:

키는 정수 또는 문자열일 수 있습니다. 키가 정수의 표준 표현인 경우 다음과 같이 해석됩니다(예: "8"은 8로 해석되고 "08"은 "08"로 해석됨).

즉, PHP는 숫자 문자열을 문자열로 인용하더라도 정수로 해석합니다.

추가: JavaScript 객체 비교 키

PHP의 이 동작은 JavaScript 객체 키와 유사하지만 동일하지는 않습니다. JavaScript에서는 숫자 문자열을 객체 키로 사용할 수 있으며 문자열 형식을 유지합니다.

foo = { '10' : 'bar' };

foo['10']; // "bar"
foo[10]; // "bar"
foo[012]; // "bar"
foo['012']; // undefined!

이 예에서는 '10'이 문자열 키로 사용되는 반면 10과 012는 모두 해석됩니다. 정수로. 그러나 인용된 문자열인 '012'는 문자열 "012"로 해석되는 PHP와 달리 정의되지 않은 것으로 처리됩니다.

위 내용은 PHP 배열은 정수 변환 없이 숫자 문자열을 키로 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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