On Sat, Sep 20, 2014 at 3:03 PM, Leigh <lei...@gmail.com> wrote: > 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. >> > > 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 < ...) {} > Yikes, I truly hope nobody ever writes that code. Ever.
> 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). > I admit, I haven't thought it through entirely either. Nor even if it's definitely possible. > 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) > Excellent point, a block only works with T_OR if it has a value. I'm pretty sure that at this point, it doesn't. That does put a monkey wrench into it. Perhaps a lambda could accommodate that? Starts to get ugly though... > 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. > Yeah, I might be trying too hard. Worth exploring a tiny bit though... -Sara -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php