On Thu, 2008-11-20 at 15:52 -0800, Stanislav Malyshev wrote:
> Hi!
> 
> > . end
> > . prev
> > . next
> > . reset
> > . current
> > . key
> 
> I think those should be more friendly with Iterators, but for other 
> objects probably not much sense to allow it. In 5.2 they modify or use 
> current hash pointer, but for objects that doesn't make too much sense.

Using iterators there might make sense, but two things to consider:
- prev() doesn't map to Iterator, so we might leave it out
- Doing that is a (silent) change in behavior, not going to the
  property's hashtable but the iterator interface, not sure if it
  hurts anybody, though .. language-wise I guess it makes more sense to
  allow iterators

> > . array_key_exists
> 
> Here it may make some sense, though I guess it should maybe go through 
> more specific handlers (i.e. has_dimension or has_property?). Also, 
> feels weird that key_exists works but in_array doesn't.
> 
> > . array_unique
> > . array_flip
> > . array_walk_recursive
> > . array_walk
> 
> Those are ok with any object, in theory, though it's not clear why you 
> could do array_flip on object but not array_reverse or 
> array_keys/values. Maybe we should not have object support from those, 
> except array_walk_* for Iterators? If you want something else, get 
> properties manually...

I don't think we should pick a single function to do iterator stuff,
especially as there's iterator_apply() doing the same thing for some
time.

> > . uksort
> > . uasort
> > . usort
> > . natcasesort
> > . natsort
> 
> These frankly make little sense with objects and also other sorts do not 
> support object, so I'd say this is just a bug that they allow objects at 
> all.

I agree.

johannes



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

Reply via email to