SplObjectStorage를 데이터 맵으로 사용하면 가변 배열을 데이터로 사용할 수 있습니까?
-
28-10-2019 - |
문제
다음 코드에서 : 라코 디스
나는 $storage[$fooA]
가 1
가 될 것으로 예상합니다.나는 또한 $storage[$fooB]
가 array('test')
가 될 것이라고 기대할 것입니다.이것은 또한 "SplObjectStorage의 오버로드 된 요소를 간접적으로 수정해도 효과가 없습니다 ..."라는 알림을 트리거합니다.
ArrayAccess
의 SplObjectStorage
구현이 참조로 값을 반환하지 않기 때문에 이런 일이 발생한다고 생각합니다.
키가 객체이고 값이 가변 배열 인 데이터 맵으로 SplObjectStorage
를 사용할 수있는 방법이 있습니까?이런 종류의 작업을 수행 할 수있는 다른 실행 가능한 옵션이 있습니까?
해결책
간접 수정 (예 : 참조를 반환하는 유전자 코드 태그 코드)은 최근의 능력입니다. offsetGet
에 대한 참고 사항 을 참조하세요.SplObjectStorage가 사용하지 않는 것 같습니다 (아직?).
대신 직접 수정을 사용하는 것이 좋습니다. 라코 디스
제휴하지 않습니다 StackOverflow