Hi! 2010/6/2 Stas Malyshev <smalys...@sugarcrm.com>
> Hi! > > > Is there some other reason / use case for wanting exceptions? So, I >> mean, where is the use case where '123abc' will be passed to a >> type-hinted field where you could catch the exception and do something >> meaningful to carry on with the execution of the program other than >> simply error-ing out? >> > > Pretty much everywhere. Suppose you have form with, say, 2 fields and first > field does not validate. Maybe you want to check the second field too and > give the user both errors if they are both wrong? > > In general, looking at strict typing as user input validation mechanism is > a very bad idea. There are specialized use input validation > functions/classes/frameworks, and one should use them. > > -- > Stanislav Malyshev, Software Architect > SugarCRM: http://www.sugarcrm.com/ > (408)454-6900 ext. 227 > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > I agree with you. The type hinting is not a replacement for the sanity check of the user input but a proper way of defining what type of data your functions should work with, so it's OK to trigger errors when data loss happens. When you have function foo(int &$bar) the data loss will affect the application in the same way that an undefined var would do; so the E_NOTICE error level seems the best approach to me. And when the data conversion is not possible (e.g. object to numeric) just trigger an E_FATAL. Let the top level users take care of the input because I think that language features like this type hinting are for the low level of the development. Regards, Eloy Bote Falcón.