> It would have been interesting to get some more feedback on why people
> voted No - some took part in the discussion, but most didn't.

Indeed... Of those who did, I have retained the following arguments
(sorry in advance for any omission, approximation or
misinterpretation):

  - no impact analysis (but seems difficult...)
  - it would increase the discrepancy between e.g. `if ($x)` and
`takes_bool($x)` (already existing for non-scalar $x [okay VS
TypeError], but now for scalar $x too [okay VS deprecation notice])
  - the deprecation should apply to all floats (even 0.0 and 1.0)
because floating-point equality is risky
  - the deprecation should include the string "0" (VS empty "")
because it's a recurrent WTF (and maybe even in all implicit boolean
evaluations [e.g. `if`, `&&` etc.] too)
  - we should rather deprecate `takes_bool($string)` and
`takes_bool($float)` totally (i.e. all strings and floats), and also
`takes_string($bool)` and `takes_float($bool)` (but maybe don't need
to change `takes_bool($int)` at all)

Note: I think that generally there can be arguments in both ways...

> I think the RFC would have helped
> identify obvious bugs

I agree ;(

> thanks to everybody who took part in the discussion, it was an
> interesting experience.

Thank you ;)

> If anybody still wants to give some insight on these reasons or a way to
> improve boolean coercions in another way, I would be happy to hear it.

Sorry I don't have better ideas... Maybe others will?

--
Guilliam Xavier

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

Reply via email to