Re: Type hinting

From: Date: Thu, 10 Jun 2010 12:29:16 +0000
Subject: Re: Type hinting
References: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  Groups: php.internals 
Request: Send a blank email to internals+get-48722@lists.php.net to get a copy of this message
On Thu, Jun 10, 2010 at 2:12 PM, Christian Schneider <cschneid@cschneid.com>wrote: > Zeev Suraski wrote: > > That's exactly what I had in mind. Have E_TYPE off by default and > > implement it throughout PHP - instead of just type hints. > > > >> for example: > >> $foo = 0; > >> $foo += (int)'123abc'; // no error > >> $foo += '123abc'; // E_TYPE > > Out of curiosity: What would you do with the E_TYPE on the last one? > > 1) Log it: What for? > 2) Abort the script: Why? > 3) Silence it with explicit casting: Why? > 4) Look at the code and find out X: What is X? > > As for me, I would log it, and depending on the application abort or continue excetuion, and when I got the report about the error, I would look at the code... > > One biggy for me: E_TYPE should not slow down PHP if one is not > interested in it. I think there was a discussion about making ignored > E_* (almost) performance neutral but I don't think that's implemented > yet, right? We patched away E_NOTICE warnings in the PHP source because > we're not interested in access to undefined variables and I wouldn't > want to have to do something similar for E_TYPE. > > The current error handling is "sub-optimal". AFAIK the error handler gets called and the variables(stack trace) populated whether the given error matches the error_level, or not. So I think that thats a different problem. Tyrael

« previous php.internals (#48722) next »