On 25 Jul 2014, at 20:20, Stas Malyshev <smalys...@sugarcrm.com> wrote:

> This makes very little sense, 0 means the same as false is in many
> contexts in PHP and also in many languages.

It also means very different things in some places, particularly return values. 
strpos returning 0 is most definitely not the same thing as strpos returning 
FALSE. That’s a big reason why FALSE and TRUE aren’t accepted for int type 
hints: bools are common error values.

> Having random arcane rules
> would only make the users curse us every time they get tripped by them.

The rules are not random nor arcane.

> I call everybody to vote against this RFC - it's better not to have such
> thing at all then to promise our users improvement only for them to
> discover this improvement is fraught with inconsistent arbitrary rules

How are they inconsistent and arbitrary? These rules haven’t been picked at 
random from a hat, they’ve come from a process of careful thought. Casting an 
integer to a string and vice-versa makes sense and is a common operation 
($_GET[‘id’]), while casting a NULL or FALSE to a string doesn’t really make 
sense (when do you need to do this?), and is unlikely to happen unless 
something’s gone wrong.

> that do not match what the rest of the language is doing

That is true, but it would be possible to change zpp later.

> - even within
> the same context of the function call. I can see no uniting principle
> behind this table, which is randomly strict and randomly non-strict
> without connection to the rest of PHP. I do not think it is the right
> thing to have such thing in the language, even if it would help
> somebody's particular use-case.

The point of this RFC is to strike a compromise that is generally useful rather 
than helping one specific use case (strict hints) or another (casts).

--
Andrea Faulds
http://ajf.me/





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

Reply via email to