3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Role { public $public; protected $protected; private $private; public function __construct($prop) { $this->public = $prop; $this->protected = $prop; $this->private = $prop; } } $test = [(new Role(false)), (new Role(1)), (new Role(null)), (new Role("1")), (new Role(2)), (new Role(0))]; var_export( array_unique($test, SORT_REGULAR) ); echo "\n---\n"; var_export( array_filter( $test, fn($o, $k) => array_search($o, $test, true) === $k, ARRAY_FILTER_USE_BOTH ) );
Output for git.master_jit, git.master
array ( 0 => \Role::__set_state(array( 'public' => false, 'protected' => false, 'private' => false, )), 1 => \Role::__set_state(array( 'public' => 1, 'protected' => 1, 'private' => 1, )), 4 => \Role::__set_state(array( 'public' => 2, 'protected' => 2, 'private' => 2, )), ) --- array ( 0 => \Role::__set_state(array( 'public' => false, 'protected' => false, 'private' => false, )), 1 => \Role::__set_state(array( 'public' => 1, 'protected' => 1, 'private' => 1, )), 2 => \Role::__set_state(array( 'public' => NULL, 'protected' => NULL, 'private' => NULL, )), 3 => \Role::__set_state(array( 'public' => '1', 'protected' => '1', 'private' => '1', )), 4 => \Role::__set_state(array( 'public' => 2, 'protected' => 2, 'private' => 2, )), 5 => \Role::__set_state(array( 'public' => 0, 'protected' => 0, 'private' => 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:
44.8 ms | 408 KiB | 5 Q