Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
opt
/
php-7.0
/
share
/
test
/
mongodb
/
tests
/
cursor
/
//opt/php-7.0/share/test/mongodb/tests/cursor/bug0849-001.phpt
--TEST-- PHPC-849: Cursor::setTypeMap() leaks current element if called during iteration --SKIPIF-- <?php require __DIR__ . "/../utils/basic-skipif.inc"; ?> <?php NEEDS('STANDALONE'); CLEANUP(STANDALONE); ?> --FILE-- <?php require_once __DIR__ . "/../utils/basic.inc"; $manager = new MongoDB\Driver\Manager(STANDALONE); $bulk = new MongoDB\Driver\BulkWrite(); $bulk->insert(['_id' => 1]); $bulk->insert(['_id' => 2]); $bulk->insert(['_id' => 3]); $manager->executeBulkWrite(NS, $bulk); $cursor = $manager->executeQuery(NS, new MongoDB\Driver\Query([])); $cursor->setTypeMap(['root' => 'stdClass']); foreach ($cursor as $i => $document) { // Type map will apply to the next iteration, since current element is already converted $cursor->setTypeMap(['root' => ($i % 2 ? 'stdClass' : 'array')]); var_dump($document); } ?> ===DONE=== <?php exit(0); ?> --EXPECTF-- object(stdClass)#%d (%d) { ["_id"]=> int(1) } array(1) { ["_id"]=> int(2) } object(stdClass)#%d (%d) { ["_id"]=> int(3) } ===DONE===