On Sun, Nov 6, 2016 at 1:59 PM David Rodrigues <david.pro...@gmail.com>
wrote:

> I guess that the biggest problem is about the code parsing. Currently PHP
> should supports what you wrote, but with another meaning. And personally I
> think that this feature is not too common on programming language in
> general, once that it is possible from first format (maybe more clear too).
>
> Em 6 de nov de 2016 6:30 PM, "Fleshgrinder" <p...@fleshgrinder.com>
> escreveu:
>
> > Validating whether a number is within a closed or open interval is
> > currently possible only via a construct like the following:
> >
> > ```
> > if (0 < $x && $x < 42) {
> >     echo 'x is in (0, 42)';
> > }
> >
> > if (0 <= $x && $x <= 42) {
> >     echo 'x is in [0, 42]';
> > }
> > ```
> >
> > 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]';
> > }
> > ```
> >
>
>
Richard,

I'd be a +1 on this.  I dislike having the double comparison all over
checking for bounds, and have for quite a while. Akin to what David brought
up, https://3v4l.org/7MvlB.  It seems the requested syntax is not valid in
any PHP version testable here.  I can't speak to the complexities of
implementing something like that, but would find it useful.

Of course, you'd have to worry about other conditions like
```
if (0 < $x > 20)
```
By worry about, I mean, should it be invalid syntax, or, should it be
optimized to be `20 < $x`?  I'd say you'd have to maintain the gt/lt for
chaining.

Then I'd wonder about similar syntax to check if 2 variables are both
greater than 0, but one greater/equal to the other:
```
if (0 < $x <= $y)
```

--
Dave

Reply via email to