From the docs page http://php.net/manual/en/language.oop5.typehinting.php
If class or interface is specified as type hint then all its children or implementations are al
From the same typehinting section you linked to:
The class implementing the interface must use the exact same method signatures as are defined in the interface. Not doing so will result in a fatal error.
For the method signatures to be the same, they must contain the exact same typehints. And also relevant because it is similar...
From the OOP Basics - extends section of the manual:
When overriding methods, the parameter signature should remain the same or PHP will generate an
E_STRICTlevel error. This does not apply to the constructor, which allows overriding with different parameters.