Edit report at https://bugs.php.net/bug.php?id=61453&edit=1
ID: 61453 Updated by: cataphr...@php.net Reported by: jhgundersen at gmail dot com Summary: SplObjectStorage does not identify objects correctly -Status: Assigned +Status: Closed Type: Bug Package: SPL related Operating System: Linux PHP Version: 5.4.0 Assigned To: cataphract Block user comment: N Private report: N New Comment: Fixed in git. Thank you. Previous Comments: ------------------------------------------------------------------------ [2012-03-20 12:41:55] jhgundersen at gmail dot com Description: ------------ When I have a large collection of objects stored in a SplObjectStorage it starts to behave strange. It says that an object already exists in the storage and returns the stored data for another object. Test script: --------------- $limit = 1000; $objects = new SplObjectStorage; for($i = 0; $i < $limit; $i++){ $object = new StdClass; if(isset($objects[$object])){ die("this should never happen, but did after $i iteration"); } $objects[$object] = 1; } echo "\nfinished\n"; Expected result: ---------------- The script should never enter the if condition and die, because the object has not been added to the object storage yet Actual result: -------------- The scripts dies because of it finding an object in the storage that should not have been there. This happens at random iteration, i'm guessing based on memory usage or something. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=61453&edit=1