3v4l.org

run code in 300+ PHP versions simultaneously
<?php trait T { abstract function foo(): string; function bar(): string { return $this->foo(); } } abstract class A { use T; } /* class B extends A { // This fatals as expected function foo() { return 'some string'; } } */ class C { use T; // This does not function foo() { return 'some string'; } } class D { use T; // This ALSO does not function foo(): int { return 3; } } abstract class E { use T; // Nor this function foo() { return 'some thing'; } } (new D())->bar();
Output for git.master, git.master_jit, rfc.property-hooks
Fatal error: Declaration of C::foo() must be compatible with T::foo(): string in /in/OlOJg on line 28
Process exited with code 255.

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:
53.89 ms | 401 KiB | 8 Q