Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:60796 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 29461 invoked from network); 11 Jun 2012 21:01:36 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 11 Jun 2012 21:01:36 -0000 Authentication-Results: pb1.pair.com header.from=marc@easen.co.uk; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=marc@easen.co.uk; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain easen.co.uk from 74.125.82.54 cause and error) X-PHP-List-Original-Sender: marc@easen.co.uk X-Host-Fingerprint: 74.125.82.54 mail-wg0-f54.google.com Received: from [74.125.82.54] ([74.125.82.54:54307] helo=mail-wg0-f54.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 4F/E6-18025-EAC56DF4 for ; Mon, 11 Jun 2012 17:01:35 -0400 Received: by wgbfg15 with SMTP id fg15so2805594wgb.11 for ; Mon, 11 Jun 2012 14:01:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding :x-gm-message-state; bh=05+UQEKzrEym7juETXPc6iXnDMdNtUPXpQzEqBC4Qzk=; b=JHvrS7cWSDqwK4dGk4gzi7qoYobJRSVZ5Wipr/BvhNvEm/GDzWeJyNLnwvtnCYCWu+ Exlcc9iLNvfuZpadcYMULBUJOCbJVZDhjmBWcAdGQnRS5YnLenZnR1Q2HuEkeqUn54c3 U64vRsST3xH+xZ32PHO43XgYWJyM0S4yvHPS9pdVtNNleGplrGdJ23xGLcXDhKSTFSOX q1DusUp6l90AI0tEGmN8iH99RhY7lVrtrH9ycK5xjCFt+UxAh+vQLTSSVzMfEYWuzQbw RG4twukjL/WL2tjYYxK8KUQZZsMICSy5PeaYcUuXhCddYASB6s0RjoR0PgGiQmdWlPgM JaYg== Received: by 10.216.145.149 with SMTP id p21mr7412655wej.1.1339448488319; Mon, 11 Jun 2012 14:01:28 -0700 (PDT) Received: from [192.168.1.206] (5e025a1e.bb.sky.com. [94.2.90.30]) by mx.google.com with ESMTPS id f19sm1379019wiw.11.2012.06.11.14.01.26 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 11 Jun 2012 14:01:27 -0700 (PDT) Message-ID: <4FD65CA5.4050703@easen.co.uk> Date: Mon, 11 Jun 2012 22:01:25 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120420 Thunderbird/12.0 MIME-Version: 1.0 To: internals@lists.php.net References: <496E551C-85F0-423E-89FA-2C5245808320@easen.co.uk> <4D309A4D.9020904@sugarcrm.com> <4FCD07CA.7030605@easen.co.uk> <131ff485e2f37a4388919f1c61fd4816.squirrel@www.l-i-e.com> <4FD6436B.1080200@sugarcrm.com> In-Reply-To: <4FD6436B.1080200@sugarcrm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Gm-Message-State: ALoCoQlXnzwmZEOpypsosbheplW9xXhntwAbwXkMhqHKcdBR5n6ZiFxdFQM3noMOarun6Fliyae3 Subject: Re: [PHP-DEV] Support negative indexes for arrays and strings From: marc@easen.co.uk (Marc Easen) On 11/06/12 20:13, Stas Malyshev 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]. > >> 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. > Please note I'm not referring the negative indexes in arrays, just strings. As I see strings as being simpler to implement and produce a greater benefit compared to supporting negative indexes for arrays. As arrays are more complex structures and adding this behaviour would complicate things somewhat.