You have tried the ?: operator?

    echo !is_infinite($n1/$n2) ?: 0;

It should returns true or 0, for this case.

2016-11-03 13:02 GMT-02:00 Antony D'Andrea <contac...@antonydandrea.com>:
> Hi all,
>
> First off, this is my first time e-mailing internals or even thinking about 
> submitting RFC. Please forgive me if I fail to follow some kind of convention.
>
> In PHP 7.0, we were given the Null Coalesce operator. For example:
>
>        echo $array['key']??"key is not set"
>
> would be the same as:
>
>       echo (isset($array['key'])?$array['key']:"key is not set"
>
> This is a great feature, that makes code much cleaner.
>
> This works on the principle that "$array['key']" is "NULL".
>
> I would like to propose a new feature that is as clean as this but is a 
> slightly different use case. This would require a new operator (up for 
> discussion, but an early idea is "?!") For example:
>
>     echo (!is_infinite($n1/$n2)?!0);
>
> Would output ($n1/$n2) if it is "true" and 0 if false.
>
> Right now, the closest we have to this is ?: operator. The problem with this 
> is that it could get very messy as you still have to do:
>
>     echo (!is_infinite($n1/$n2)?$n1/$n2:0);
>
> I have obviously over simplified the example. You wouldn't have a big problem 
> in this case, but if the subject of the function is much longer, it can 
> become complicated very quickly.
>
> Alternatively, a perhaps more general feature would be to just have the same 
> functionality as the Null Coalesce, but with true/false rather than Null/Not 
> Null.
>
> Please let me know if there is something in these ideas or anyway to improve 
> them. I should also note that I would need a volunteer to implement this as 
> my "C" skills are non-existent and I wouldn't have the confidence to delve 
> into the the PHP source.
>
> Thanks for your time.
>
> Best,
>
> Antony D'Andrea



-- 
David Rodrigues

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

Reply via email to