On 20 September 2014 20:47, Sara Golemon <p...@golemon.com> wrote: > > I like the general idea, but rather than explicitly focusing on the 'or' > keyword, how about just giving all loop constructs (do/while/for/foreach) a > return value? I'd suggest an integer return value indicating the number of > times the loop executed. > > This accomodates your use case since foreach(...) {} or { defaultblock } > still works, while also allowing for others: > > e.g.: > $ranTwice = foreach(...) {} == 2; > > It does introduce a temp var, but OpCache+ can trivially optimize that out > when it isn't used. > > -Sara
Sorry @Sara - didn't reply to all the first time. ---- mind === blown This would open up a huge amount of other functionality I'd never dreamed of (some of which is quite scary!) for($i = for(...) {}; $i < ...) {} I'm really not sure I understand the full implication of this though. This would mean changing loop constructs from statements to expressions. I wonder how difficult that will actually be, and what other problems it would cause (I obviously haven't played with this idea yet). It would also mean having to make { default block } into an expression... with a return value (to be allowed on either side of the boolean or) Lots to think about here, if it's at all viable this will need it's own separate RFC, it's a much more invasive change, but definitely a great idea. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php