On Monday March 16 at 9:33 am Thomas Punt wrote:

> Strictly speaking (pun intended), this is not true. A library can easily 
> expose a
> facade that enforces a user of that library (who is in weak mode) to have to 
> write
> in strict mode [1]. Once more, this can be done unintentionally [2] because 
> of the
> caller-deciding semantics. These examples can be further extended into wrapper
> classes, nested library dependencies, etc.
> 
> Sure, you could argue that this could easily be turned off by simply removing 
> the
> top declare() statement of that library, but modifying the library in itself 
> introduces
> complications - especially when using dependency managers like Composer.
> 
> [1] https://gist.github.com/tpunt/4830d18d47e2df021c2f
> [2] https://gist.github.com/tpunt/eecfed2495bdccb73632

This is a bug in the library. It declares strict mode but passes a value it
does not know to be an integer to a method requiring an integer. It can
be fixed by simply adding an int type declaration to the constructor or
test method.

Thanks,

Theodore                                          
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to