<?php Class Foo { private $id; public function __construct() { $this->id = uniqid('', false); } public function setId($id) { $this->id = $id; } } $foo1 = new Foo(); $foo2 = new Foo(); $a = new ArrayObject([$foo1, $foo2]); $b = new ArrayObject(); foreach ($a as $i => $foo) { $b->offsetSet($i, $foo); } echo 'Initial state of Copy:' . PHP_EOL;; var_export($b); echo PHP_EOL . '-----------------------' . PHP_EOL; //form submission $foo1->setId('Hello World'); echo 'Form Submitted ID Changed in Copy:' . PHP_EOL;; var_export($b); echo PHP_EOL . '-----------------------' . PHP_EOL; echo 'Source has foo2 entity removed:' . PHP_EOL;; $a->offsetUnset(1); //remove entity var_export($a); echo PHP_EOL . '-----------------------' . PHP_EOL; echo 'Copy still contains both entities:' . PHP_EOL;; var_export($b);
You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).