Anthony,

On Thu, Feb 26, 2015 at 1:29 PM, Anthony Ferrara <ircmax...@gmail.com>
wrote:

> Mike,
>
> One point of clarification:
>
> > This is true, however, the types that you are receiving back form a
> > multitude of data sources might be in a mixed format (databases for
> example
> > often provide representation back as a string, non-json based web
> services
> > provide mainly as a string, etc).   While I know what my data looks like
> > and I know I am always going to get a "string" integer back I do not want
> > to have to type cast this each and every time.  Or that I have a boolean
> > integer representation that is in a string... You get the point.   Sure,
> I
> > could certainly go in and take 5 minutes and cast each one but I'm not
> > certain why the purpose is there... It specifically changes the
> > determination that PHP is a weakly typed language and all of a sudden I
> now
> > need to care that my string integer boolean is not actually a boolean.
>
> It's funny that you bring up boolean...
>
> With the current coercive proposal, you will still need to worry about
> the types: https://wiki.php.net/rfc/coercive_sth#coercion_rules


For some unbeknown reason I was inside of my head going ok, i have a string
integer so that would make an integer and then it would make a boolean.
Thank you for pointing out my obvious miss there :)


>
>
> Passing boolean(false) where an integer is expected will generate an
> error. This is a common practice, specifically around internal
> functions. Example:
>
> https://github.com/sebastianbergmann/phpunit/blob/a4e23a10d4eeea5fd9fe8916859a07430b94cf42/src/Util/ErrorHandler.php#L58
>
> So yes, you'll still need to go in and cast each one **in both RFCs**
> (or handle the errors properly).
>

This is certainly a common case, actually quite often for database purposes
do we need to handle booleans to integer conversions which my integer comes
back as a string (depending on which extension of course) and which type
field it is.


>
> The difference is with the dual-mode RFC you can choose not to have to
> cast and keep everything as-is today (or more specifically, you need
> to explicitly choose strict mode). And you can have user-land behave
> identically to internals **in both cases**.
>
> Anthony
>

Mike

Reply via email to