[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-internals
Subject:    [PHP-DEV] Re: Allow Iterator to be used with current, next, reset, key functions
From:       137.50.157.117
Date:       2016-10-31 14:02:21
Message-ID: B5.0E.25911.1FE47185 () pb1 ! pair ! com
[Download RAW message or body]

Hi David,

David Lundgren wrote:
> As suggested by several reviewers of a PR[1] I recently submitted, I'd
> like to get feedback on letting custom Iterators be used in the current,
> next, reset, and key functions. If this is something to move forward
> with, I'll need some help with the RFC process.
>
> Recent experiences trying to use these functions with a custom Iterator,
> and a bug[2], led me to try and fix this. BC will occur when an object
> implementing Iterator is passed to one of the functions, as the
> interface methods will be called, instead of returning the objects
> properties. The old behavior should be maintained for classes that do
> not implement Iterator.

A concern that strikes me is that it's possible some existing code uses 
these functions precisely because they don't support Iterators, because 
the author wants to iterate over an object's properties.

What would be the proposed alternative in that case? Reflection?

I think it's unfortunate that PHP has two iteration behaviours for 
objects, namely iterating over properties, and custom iterators. I think 
those ought to be separate, rather than the latter overriding the former.

Thanks!

-- 
Andrea Faulds
https://ajf.me/

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

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic