In PHP 8 all internal functions/methods will have complete type information in reflection. This took a lot of effort and is not quite finished yet.
In PHP 8, a lot of things that were previously warnings are now exceptions. This includes the changes done by https://wiki.php.net/rfc/engine_warnings, but also a huge number of error conditions in standard library functions. The general guideline is that any error condition that indicates a programming error and that the programmer should never be explicitly checking for becomes an Error exception. Everything else stays as warnings. This is also still work in progress.
https://old.reddit.com/r/PHP/comments/ev543b/new_in_php_8/ffu0cj4/