3v4l.org

run code in 300+ PHP versions simultaneously
<?php abstract class EnumerationBase { const NONE = null; /** * * @var mixed */ private $value; /** * * @param type $name * @param array $argumentArray * @return EnumerationBase */ final public static function __callStatic($name, array $argumentArray) { return new static(constant("static::{$name}")); } /** * * @param object $value */ final private function __construct($value) { $this->value = $value; } final private function __clone() { ; } /** * * @param EnumerationBase $enumeration * @return bool */ final public function isEqualTo(EnumerationBase $enumeration) { return ($this instanceof $enumeration) && ($this->value === $enumeration->value); } } /** * * @method FooEnumeration ONE() * @method FooEnumeration TWO() */ final class FooEnumeration extends EnumerationBase { const ONE = 1; const TWO = 2; } /** * * @method BarEnumeration ONE() * @method BarEnumeration TWO() */ final class BarEnumeration extends EnumerationBase { const ONE = 1; const TWO = 2; } var_dump(FooEnumeration::ONE()->isEqualTo(FooEnumeration::ONE())); var_dump(true); echo '----------------' . PHP_EOL; var_dump(FooEnumeration::ONE()->isEqualTo(FooEnumeration::TWO())); var_dump(false); echo '----------------' . PHP_EOL; var_dump(FooEnumeration::TWO()->isEqualTo(FooEnumeration::ONE())); var_dump(false); echo '----------------' . PHP_EOL; var_dump(FooEnumeration::TWO()->isEqualTo(FooEnumeration::TWO())); var_dump(true); echo '----------------' . PHP_EOL; var_dump(FooEnumeration::ONE()->isEqualTo(BarEnumeration::ONE())); var_dump(false); echo '----------------' . PHP_EOL; var_dump(FooEnumeration::ONE()->isEqualTo(BarEnumeration::TWO())); var_dump(false); echo '----------------' . PHP_EOL; var_dump(FooEnumeration::TWO()->isEqualTo(BarEnumeration::ONE())); var_dump(false); echo '----------------' . PHP_EOL; var_dump(FooEnumeration::TWO()->isEqualTo(BarEnumeration::TWO())); var_dump(false); echo '----------------' . PHP_EOL; var_dump(BarEnumeration::ONE()->isEqualTo(FooEnumeration::ONE())); var_dump(false); echo '----------------' . PHP_EOL; var_dump(BarEnumeration::ONE()->isEqualTo(FooEnumeration::TWO())); var_dump(false); echo '----------------' . PHP_EOL; var_dump(BarEnumeration::TWO()->isEqualTo(FooEnumeration::ONE())); var_dump(false); echo '----------------' . PHP_EOL; var_dump(BarEnumeration::TWO()->isEqualTo(FooEnumeration::TWO())); var_dump(false); echo '----------------' . PHP_EOL; var_dump(BarEnumeration::ONE()->isEqualTo(BarEnumeration::ONE())); var_dump(true); echo '----------------' . PHP_EOL; var_dump(BarEnumeration::ONE()->isEqualTo(BarEnumeration::TWO())); var_dump(false); echo '----------------' . PHP_EOL; var_dump(BarEnumeration::TWO()->isEqualTo(BarEnumeration::ONE())); var_dump(false); echo '----------------' . PHP_EOL; var_dump(BarEnumeration::TWO()->isEqualTo(BarEnumeration::TWO())); var_dump(true); echo '----------------' . PHP_EOL;
Output for git.master, git.master_jit, rfc.property-hooks
Warning: Private methods cannot be final as they are never overridden by other classes in /in/YAOG8 on line 34 bool(true) bool(true) ---------------- bool(false) bool(false) ---------------- bool(false) bool(false) ---------------- bool(true) bool(true) ---------------- bool(false) bool(false) ---------------- bool(false) bool(false) ---------------- bool(false) bool(false) ---------------- bool(false) bool(false) ---------------- bool(false) bool(false) ---------------- bool(false) bool(false) ---------------- bool(false) bool(false) ---------------- bool(false) bool(false) ---------------- bool(true) bool(true) ---------------- bool(false) bool(false) ---------------- bool(false) bool(false) ---------------- bool(true) bool(true) ----------------

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:
41.18 ms | 403 KiB | 8 Q