I would push this out in two steps. First: Negative string offset and later
range/slice
support for objects and strings. Objects would need a new magic method,
e.g. "__slice()",strings need a substr() like interface. I think both are
accessed the
same way, but way are different. The slice support is furthermore much more
comprehensive and needs more testing and so on.

BTW: I can dimly remember that {} vs [] was already concluded in favor of []
for string access.

Robert

2011/6/20 Jordi Boggiano <j.boggi...@seld.be>

> On 20.06.2011 14:02, Robert Eisele wrote:
> > Negative string offsets is a wish and also an implementation of my
> running
> > PHP version for long. It operates in the same fashion like substr() with
> > negative offsets, but avoids the function call and is much smarter if one
> > single character has to be extracted:
> >
> > $str = "Hallo";
> >
> > $str[0] == "H"
> > $str[-1] == "o";
> >
> > If -6 is used as offset, the old warning is displayed because it's the
> first
> > undefined negative offset.
> >
> > The same thing for setting:
> >
> > $str[-1] = '0';
> > $str[-4] = "4";
> >
> > will result in "H4ll0"
> >
> > Would be glad to see this in 5.4
>
> While this in itself is a good thing, I'd prefer to wait some more and
> get a well thought-through, full fledged solution supporting ranges i.e.
> $str[-1:2] or $str[-1,2].
>
> I believe there were talks of such syntax a few years ago, maybe using
> {} instead of []. I mean, right now both [] and {} seem to work equally
> on strings and arrays, but changing {} to make it behave more like
> substr/array_slice might be a viable BC break (for the negative numbers
> that might exist in arrays that is).
>
> Cheers
>
> --
> Jordi Boggiano
> @seldaek - http://nelm.io/jordi
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to