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