Re: Support negative indexes for arrays and strings
| From: | Galen Wright-Watson | Date: | Mon, 11 Jun 2012 19:28:37 +0000 |
| Subject: | Re: Support negative indexes for arrays and strings | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-60793@lists.php.net to get a copy of this message | ||
On Mon, Jun 11, 2012 at 12:13 PM, Stas Malyshev <smalyshev@sugarcrm.com>wrote:
> Hi!
>
> >> Can be:
> >> $var = 'abc';
> >> echo $var[-1];
> >
> > This seems simple enough for a hard-coded -1, but...
> >
> > Would $var[-2] be strlen($var) - 2 and so on?
>
> The main question is what happens with "foo"[-4] or ['x'][-2].
>
The same thing that currently happens for:
$f='foo'; echo $f[strlen($f)-4];
$a=['x']; $a[count($a)-2];
which appears to be notices:
Notice: Uninitialized string offset: -1 in - on line 2
> Notice: Undefined offset: -1 in - on line 3
> And then one would expect some rather complex logic to compute -N for
> > $var[-N]
>
> I don't see much of complex logic here, but $a[2] = 'a' would create a
> new array element if it does not exist, while $a[-2] can't. Not a big
> issue, but somewhat inconsistent I guess.
>
Negative indices are currently valid for arrays. If anyone makes use of
negative indices, this could break their script. Personally, I'd rather
have Marc Easen's behavior.