PHP7 scalar type hint error bug?
| From: | Yasuo Ohgaki | Date: | Thu, 14 May 2015 09:46:40 +0000 |
| Subject: | PHP7 scalar type hint error bug? | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-86215@lists.php.net to get a copy of this message | ||
Hi Anthony,
I'm experimenting type hints to write how it could be useful.
http://3v4l.org/nhI61
I thought too large value error in weak mode is E_RECOVERABLE_ERROR,
but it's not. The RFC ( https://wiki.php.net/rfc/scalar_type_hints_v5
)
does not
state how it behaves for too large values.
E_ERROR is too severe for too large values. Behavior like this
http://3v4l.org/avsW4
is preferred because it's much easier to handle errors nicely.
E_ERROR is too severe even for strict_types=1, IMHO, because
user does not have chance to handle errors nicely at all.
http://3v4l.org/aEpP8
Is this behavior is agreed behavior by discussion or a bug?
In the RFC
https://wiki.php.net/rfc/scalar_type_hints_v5#behaviour_of_strict_type_checks
it says
---------------------
Behaviour of strict type checks
A strictly type-checked call to an extension or built-in PHP function
changes the behaviour of zend_parse_parameters. In particular, it will
produceE_RECOVERABLE_ERROR rather than E_WARNING on failure, and it follows
strict type checking rules for scalar typed parameters, rather than the
traditional weak type checking rules.
---------------------
It seems intended error level is E_WARNING/E_RECOVERABLE_ERROR according to
the RFC.
Regards,
--
Yasuo Ohgaki
yohgaki@ohgaki.net