2012-09-13 2 views
1

나는 그것이 설명서에 정의 된 바와 같이, 을 ArrayObject::STD_PROP_LIST const를 이해하려고 : 목록으로 액세스 할 때 개체의PHP, SPL, ArrayObject, ArrayObject :: STD_PROP_LIST

속성이 정상적인 기능이 (var_dump, foreach 등).

가이 코드 쓰기 : 우리는 배열 요소를 볼 수 있지만 두 번째 위해서 var_dump에서 당신이 그들을 볼 수 없습니다

$array = array(5,7,9,3,6,5,4); 
$arrayObj = new ArrayObject($array); 
var_dump($arrayObj); 
$arrayObj2 = new ArrayObject($arrayObj->getArrayCopy(), ArrayObject::STD_PROP_LIST); 
var_dump($arrayObj2); 

첫 위해서 var_dump에서가, 나 또한 foreach는 모두를위한 foreach 루프 작업을 테스트 arrayObj 오브젝트 및 arrayObj2 오브젝트

정상적인 기능은 무엇인지 설명하고 두 번째 var_dump 요소가 표시되지 않는 이유는 무엇인지 설명해 주시겠습니까? 감사합니다. 좋은 하루 보내십시오.

+0

의 버전을 업그레이드한다고 생각합니다. 두 var_dumps는 동일하게 보입니다. http://www.phpfiddle.org/main/code/7x3-dkd –

+0

PHP 5.3.3-1ubuntu9.10을 재현 할 수 있습니다. print_r 및 count()는 작동하지만 var_dump는 작동하지 않습니다. –

+0

답장을 보내 주셔서 감사합니다. PHP 버전 5.4.3을 사용하고 있지만, bug는 STD_PROP_LIST에 대한 수동 정의에서 언급 한 일반적인 기능을 수행합니다. 제발 설명해주세요. –

답변

2
당신은 아무것도를 사용

오전 확인 < = PHP 버전 5.3.8 .. 그것은 또한 당신이 PHP 5.3.10에서 실행하면 다음과 같은

object(ArrayObject)#1 (7) { [0]=> int(5) [1]=> int(7) [2]=> int(9) [3]=> int(3) [4]=> int(6) [5]=> int(5) [6]=> int(4) } 
    object(ArrayObject)#2 (0) { } 

을 얻을 것입니다 발견 한 버그 다음을 얻을 것

object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(7) { [0]=> int(5) [1]=> int(7) [2]=> int(9) [3]=> int(3) [4]=> int(6) [5]=> int(5) [6]=> int(4) } } 
    object(ArrayObject)#2 (1) { ["storage":"ArrayObject":private]=> array(7) { [0]=> int(5) [1]=> int(7) [2]=> int(9) [3]=> int(3) [4]=> int(6) [5]=> int(5) [6]=> int(4) } } 

난 당신이 PHP

코드가 나를 위해 작동
+1

당신이 맞다고 생각합니다 :-) –

+0

플래그의 동작은 속성이 읽기/쓰기 가능한 방식에만 영향을 주므로 아마 버그 일 수 있습니다. –

관련 문제