Hi,

Fleshgrinder wrote:
It is not very readable and repetitive. It would be interesting to
support a more mathematical notation for this:

```
if (0 < $x < 42) {
     echo 'x is in (0, 42)';
}

if (0 <= $x <= 42) {
     echo 'x is in [0, 42]';
}
```

I cannot judge how complicated it is to extend the Bison definitions to
allow this. However, if there is interest I'm sure there is a way. :)


Python supports this, I believe it lets you use arbitrary chains of comparisons.

PHP is in the fortunate position where the associativity of the comparison operators is undefined. That is, `0 < $x < 42` is currently invalid syntax. Some other languages made the (in my view) mistake of defining a precedence here, so that it gets interpreted as `(0 < $x) < 42`, which is (generally?) useless. PHP doesn't have this problem.

I've wanted to do this myself, but figuring out how to implement it was tricky, so I didn't spend much time on it. But it's certainly possible, and I'd appreciate this if it was added.

Thanks for bringing it up!

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

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

Reply via email to