Hi, Mike, the use of "in" as `for ($var in $object) {};` could be the subject for another distinct RFC since it's doing something different from the original proposal:
var_dump("PHP" in ["PHP", "C", "Java"]); // true 2015-01-20 10:41 GMT-03:00 Mike Willbanks <pen...@gmail.com>: > Hello Pierre, Andrea and Niklas, > > On Mon, Jan 19, 2015 at 11:35 PM, Pierre Joye <pierre....@gmail.com> wrote: > >> On Tue, Jan 20, 2015 at 6:15 AM, Andrea Faulds <a...@ajf.me> wrote: >> >> On 20 Jan 2015, at 03:30, Mike Willbanks <pen...@gmail.com> wrote: >> >> >> >> I am very familiar with the in operator. However, the implementation >> >> would be incomplete without handling loops via the in operator. Many >> >> people when seeing an in operator also think of JavaScript. In that >> case >> >> the in operator iterates over properties. As such in PHP we should be >> able >> >> to iterate over associative arrays should the syntax be added. >> >> >> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in >> > >> > Why? We already have foreach/as which does exactly that, and unlike JS >> which added for/of, there’s nothing wrong with PHP’s foreach so we don’t >> need support for a new symbol. >> >> Indeed, exactly same feature. > > > It certainly is the same feature from the foreach perspective. I'm not > against leaving it out, however, it would be much like the in operator thus > providing some additional syntax sugar. Many people that often program in > JavaScript are used to having: > array.forEach(function()), for (property in object), etc. > > From my perspective it would seem like a hole in the implementation for it > to be missing but that is also due to having such a split of time between > the two languages. Take for instance python utilizing the same thing: > > for variable in expression: > ... code > ... > > as well as ruby: > > for variable [, variable ...] in expression [do] > code > end > > Ultimately, I would feel that having the in operator would also create the > expectation that in PHP we would be able to achieve the following: > > for ($var in $array) {} and/or for ($var in $object) {}; > > Certainly foreach is more rich but I believe based on other languages and > paradigms that this would be something people would request and expect if > the in operator was to make it into PHP 7. > > Regards, > > Mike -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php