3v4l.org

run code in 300+ PHP versions simultaneously
<?php $json = '{ "id": 1, "label": "Beef", "sector_page_id": null, "value": 0, "tree_children": [ { "id": 46, "label": "Beef", "sector_page_id": null, "value": 0, "tree_children": [ { "id": 47, "label": "Beef - UK", "sector_page_id": null, "value": 15, "tree_children": [] }, { "id": 48, "label": "Beef - Europe", "sector_page_id": null, "value": 25, "tree_children": [] }, { "id": 49, "label": "Beef - Rest of World", "sector_page_id": null, "value": 0, "tree_children": [] } ] } ] }'; $obj = json_decode($json); function sum_recursive(object $obj): int { foreach ($obj->tree_children as $child) { $obj->value += sum_recursive($child); } return $obj->value; } sum_recursive($obj); var_export($obj);
Output for git.master, git.master_jit, rfc.property-hooks
(object) array( 'id' => 1, 'label' => 'Beef', 'sector_page_id' => NULL, 'value' => 40, 'tree_children' => array ( 0 => (object) array( 'id' => 46, 'label' => 'Beef', 'sector_page_id' => NULL, 'value' => 40, 'tree_children' => array ( 0 => (object) array( 'id' => 47, 'label' => 'Beef - UK', 'sector_page_id' => NULL, 'value' => 15, 'tree_children' => array ( ), ), 1 => (object) array( 'id' => 48, 'label' => 'Beef - Europe', 'sector_page_id' => NULL, 'value' => 25, 'tree_children' => array ( ), ), 2 => (object) array( 'id' => 49, 'label' => 'Beef - Rest of World', 'sector_page_id' => NULL, 'value' => 0, 'tree_children' => array ( ), ), ), ), ), )

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:
26.27 ms | 409 KiB | 5 Q