- Issue created by @marcus_johansson
- 🇬🇧United Kingdom scott_euser
This looks good to me. I think given 3x is beta, release notes should just make it clear in case anyone is extending any constraints, that they should add the return types + types to their messages in order to remain compatible.
E.g.
class Class1 { public string $message = 'Great message.'; } class Class2 extends Class1 { public $message = 'Great message.'; } $class = new Class2();
Will result in
Fatal error: Type of Class2::$message must be string (as in class Class1)
And
class Class1 { public function myFunction(): string { return 'hello1'; } } class Class2 extends Class1 { public function myFunction() { return 'hello2'; } } $class = new Class2(); print $class->myFunction();
Will result in
Fatal error: Declaration of Class2::myFunction() must be compatible with Class1::myFunction(): string