3v4l.org

run code in 300+ PHP versions simultaneously
<?php class WidgetCollection { private $widgetArray = []; public function addWidget(Widget $widget) { $this->widgetArray[spl_object_hash($widget)] = $widget; } public function removeWidget(Widget $widget) { unset($this->widgetArray[spl_object_hash($widget)]); } public function getEachWidget() { return array_values($this->widgetArray()); } } class Widget { } $widgetCollection = new WidgetCollection; $widgetCollection->addWidget($a = new Widget); $widgetCollection->addWidget($b = new Widget); $widgetCollection->addWidget($c = new Widget); var_dump($widgetCollection); $widgetCollection->removeWidget($b); var_dump($widgetCollection);
Output for git.master, git.master_jit, rfc.property-hooks
object(WidgetCollection)#1 (1) { ["widgetArray":"WidgetCollection":private]=> array(3) { ["00000000000000020000000000000000"]=> object(Widget)#2 (0) { } ["00000000000000030000000000000000"]=> object(Widget)#3 (0) { } ["00000000000000040000000000000000"]=> object(Widget)#4 (0) { } } } object(WidgetCollection)#1 (1) { ["widgetArray":"WidgetCollection":private]=> array(2) { ["00000000000000020000000000000000"]=> object(Widget)#2 (0) { } ["00000000000000040000000000000000"]=> object(Widget)#4 (0) { } } }

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
49.53 ms | 402 KiB | 8 Q