+1 on that.

However, I believe the coder should also have the option of determining
whether this should be recoverable or not, just like they have a choice
with regard to using "include" or "require" (one fails gracefully, the
other terminates execution).

That's where I think strong/weak could be very useful.  Here's how I would
do it:

weak int $a = "House"; // Throws E_WARNING
strong int $a = "House"; // Throws E_RECOVERABLE_ERROR


In both cases, the error can be caught, which would mirror the flexibility
in languages like C#.  However, if the weak one isn't caught, the warning
is thrown but the script proceeds as normal.  If the strong one isn't
caught, the script will terminate as if it was an E_ERROR.

I think this would be the most sensible approach in terms of balancing
simplicity and flexibility.

--Kris


On Tue, Feb 28, 2012 at 3:08 PM, Michael Morris <dmgx.mich...@gmail.com>wrote:

> Agreed.  If conversion can occur without data loss (that is, if the
> value being assigned is == the value that actually IS assigned) then
> no error should occur.
>
> So
>
> int $a = "1"; // no error.  1 == "1" so who cares?
> int $a = 'House'; // error 0 != 'House', so this is a problem.
>
> Again, errors should only raise if the final value != source value.
>
> On Tue, Feb 28, 2012 at 6:03 PM, Rick WIdmer <vch...@developersdesk.com>
> wrote:
> > On 2/28/2012 2:58 PM, Kris Craig wrote:
> >
> >> strong int $a = "1"; // Converts to 1.  May or may not throw an error
> (I'm
> >> still on the fence).
> >
> >
> > It this is an error, it is no longer PHP.
> >
> >
> > --
> > PHP Internals - PHP Runtime Development Mailing List
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to