> 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

Reply via email to