3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php class Student { private $classes; public function __construct($classes) { $this->classes = $classes; } public function getClasses() { return $this->classes; } public function combineClasses(Student $otherStudent) { $allClasses = array_unique(array_merge($this->classes, $otherStudent->classes)); $this->classes = $allClasses; $otherStudent->classes = $allClasses; } } $mary = new Student(['CompSci2001', 'CompSci2002']); $john = new Student(['CompSci2002', 'CompSci2003']); $mary->combineClasses($john); var_dump($mary->getClasses()); var_dump($john->getClasses());
based on 3nLfb

Shows result from various feature-branches currently under review from the php developers. Contact me to have additional branches featured.

Output for Typed properties v2
array(3) { [0]=> string(11) "CompSci2001" [1]=> string(11) "CompSci2002" [3]=> string(11) "CompSci2003" } array(3) { [0]=> string(11) "CompSci2001" [1]=> string(11) "CompSci2002" [3]=> string(11) "CompSci2003" }
Output for Object typehint
array(3) { [0]=> string(11) "CompSci2001" [1]=> string(11) "CompSci2002" [3]=> string(11) "CompSci2003" } array(3) { [0]=> string(11) "CompSci2001" [1]=> string(11) "CompSci2002" [3]=> string(11) "CompSci2003" }
Output for Array change keys
array(3) { [0]=> string(11) "CompSci2001" [1]=> string(11) "CompSci2002" [3]=> string(11) "CompSci2003" } array(3) { [0]=> string(11) "CompSci2001" [1]=> string(11) "CompSci2002" [3]=> string(11) "CompSci2003" }
Output for Lexical anon
array(3) { [0]=> string(11) "CompSci2001" [1]=> string(11) "CompSci2002" [3]=> string(11) "CompSci2003" } array(3) { [0]=> string(11) "CompSci2001" [1]=> string(11) "CompSci2002" [3]=> string(11) "CompSci2003" }

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