PHP is dynamic language and each typed typehinted parameter has to be
checked every time. I am suggesting new php.ini value "typecheck.enable =
1" which can be turned off.

Example:
with default php config, a code like this would check each member of $users
array:

function demo(User ...$users) {}

but with "typecheck.enable = 0", same code would be treated like it was
written this way:

function demo(...$users) {}

Basically, php would simply *ignore* typehints and work like they are not
there.

It would be programmers responsibility to send correct values but people
using typehints are not those still learning the basics.

Just like it is programmers responsibility to restart php-fpm when using
opcache.validate=0, it would be theirs responsibility to send correct
values. Any decent IDE would mark errors for wrong parameter type and with
tools like phpstan, it is almost impossible to make one. Only development
computers would need to have this checks turned on.

This creates no BC problems as it is a new feature. Given that typechecks
can be turned off, all existing programs would benefit from extra speed.

I am sending this mail by following rules from
https://wiki.php.net/rfc/howto . I don't have any knowledge of php
internals so unfortunatelly, I can't help with this. I at least hope
someone will take this RFC into consideration.

Reply via email to