Am 28.03.2023 um 00:36 schrieb G. P. B. <george.bany...@gmail.com>:
> I therefore propose the "Define proper semantics for range() function" RFC
> to address the unintuitive behaviour that sees no usage and/or hide bugs:
> https://wiki.php.net/rfc/proper-range-semantics
> 
> The change propose to throw TypeErrors and ValueErrors for case where I
> couldn't find occurrences in the wild and hide bugs, and emit some
> E_WARNINGs for cases that are hard to detect via static analysis.

I think it makes sense to clean up the range() function, thanks!

There are two cases I would handle differently:
- I'm not sure why a negative step for $start > $end is considered wrong, I 
consider range(10, 0, -2) at least as logical/readable as using a positive 
decrement of 2. Not requiring a sign for steps seems weirder to me but that's 
something we cannot change. *BUT* if it is the result of a calculation it seems 
wrong to require an abs() around it. I do see the reason for a warning/error 
when $start < $end and $step < 0.
- Values of '' or null in integer context (e.g. range(null, 10, 2)) should IMHO 
emit a warning first, not directly be changed to a TypeError. The usual BC / 
migration concern :-)

Regards,
- Chris

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

Reply via email to