> Le 5 avr. 2020 à 16:01, Gabriel Caruso <carusogabrie...@gmail.com> a écrit : > > Hello, internals. > > Hereby you can find the RFC Document that I want to discuss as suggested > via https://externals.io/message/109416 and > https://externals.io/message/107990: > > https://wiki.php.net/rfc/magic-methods-signature > > Best regards, > > -- Gabriel Caruso
Hi, Regarding __construct(), etc. Since those methods are not supposed to return anything, they ought to accept the `void` return pseudo-type in their signature, which means exactly that: “do not return anything”. I consider that the current behaviour (i.e., not accepting the `: void` signature) as a bug, and was very surprised when I stumbled on it. ------------ Also, I raise the following question: Should omitted types be added implicitly? I.e., if I write: `function __toString() { }` should the compiler interpret it as `function __toString(): string { }` ? (Currently, it is not the case.) Doing so would raise BC concerns for some, uh, creative uses of magic methods. On the other hand, that may help to add progressively type informations on magic methods, since there is no need to synchronise manually classes and subclasses (the compiler would do it automatically for you). Concrete example here: https://3v4l.org/hTMvA <https://3v4l.org/hTMvA> —Claude