Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:86515 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 75843 invoked from network); 9 Jun 2015 11:21:53 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 9 Jun 2015 11:21:53 -0000 Authentication-Results: pb1.pair.com smtp.mail=cmbecker69@gmx.de; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=cmbecker69@gmx.de; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmx.de designates 212.227.15.19 as permitted sender) X-PHP-List-Original-Sender: cmbecker69@gmx.de X-Host-Fingerprint: 212.227.15.19 mout.gmx.net Received: from [212.227.15.19] ([212.227.15.19:54047] helo=mout.gmx.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 3D/31-00828-F4CC6755 for ; Tue, 09 Jun 2015 07:21:52 -0400 Received: from [192.168.0.100] ([95.89.139.132]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0MFdPZ-1YoJ5J2qIP-00Ed6s; Tue, 09 Jun 2015 13:21:20 +0200 Message-ID: <5576CC2E.8080908@gmx.de> Date: Tue, 09 Jun 2015 13:21:18 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Yasuo Ohgaki , Matt Wilmas CC: Stanislav Malyshev , "internals@lists.php.net" References: <5576051A.3040800@gmx.de> <55760771.6020802@gmail.com> <778F345F9918474AB8CAAB03082ECBF7@pc1> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:CBeULTnOa8X6ow2EwUCDen/T/blANBtHkZ3ArzKbXl3kPkK8ofN u1iPxcR099qeVPy9BwEhpq7TgfqkrA3KfLoy+WCL7yf2Fgm2b2KfOEgMgmpv2nlVp7iIkfT uA/KI4Ru+YEvgHwYXwdrba2K2MtkPTT2h9AePRSGkGNz8PCu+MLDhNfzIOHpMHaGZTSxYsv C2SNdtapZMCYUYplR0HXg== X-UI-Out-Filterresults: notjunk:1;V01:K0:QdQxj6ig5ds=:yIwaLbKs3q+AVIoPRm6iB/ Wywi1ypXBU8k7wQeEHHEeffwyRpVUoPVFW7nw6F0UfsG1Rk6DcJVcfxyNoNJasE8eCoy7EXds 1KQ+nINus6i5WxWR4eN2H37AjcKCUg3la3l7538fNzxl1mD32XklCnxLJBxCZOxh56rOSfdiY Aoct81xW3oumO/KUAM1uA8kPWLHtAFsD9Z/Lm7DnLvb4bsYHleY9hGYrnzM0o2rU7hydAC6ZE DDJCtzUrfaFqebkKvhrgt1+0JCjKJMNShHrpxgKO6s11T8nBoX2vlbaKIsTgaVPihdRSZt8+F XazTldMrT1Lx12gWSb77xCyJXGlThQ3LcK0ry5f73xy3Omwj40jvo0Jv9CSwfqx1nJXtCDjkH amIHwp/kd7TWG3WXokOSOQKL+eIdmEKZMiARPWK+Sad0zdWYOPS9920mVUuYt82NvPm5IzDvT PgPkVYKrrqog9hAIy1ZZHHTwhHDc7TvOQvhWdaA1KOZ3uUmplHQtm2EtyzuzEMVsqSjzfyjvl 2zFsIW4GaGD4Q8L/EZVYLZYnGxCKt3GBpxTznLUirAc4MHNyy/ucKuTO01Q5BJboa0ArMTDt2 f9QT9UUvGXZvj4lNmKxApU0FejlqrS0guBQ8PgB+FzCnzUEkquFNhRs928yToh07HfszxhNq7 IhqbGfnVF9A/DWfSnHILkgQHzrMSq42ifQ3vxTFWV8QhzzlxOEWULhHG3zxYNtNovwLQ= Subject: Re: [PHP-DEV] Array dereferencing of scalars From: cmbecker69@gmx.de (Christoph Becker) Yasuo Ohgaki wrote: > I fully agree that current behavior could be used meaningful ways. However, > > $foo = 42; > $foo['bar']; // => NULL > $v = NULL; > $v[0][1][2][3][4][5][6][7][8][9]; // NULL > > this code is semantically wrong and I would like to have error/exception > for such > erroneous codes. It's inconsistent with array object, too. > > Raising exception/error is correct behavior for types that aren't array. > To avoid errors, users should use isset()/is_array()/etc. I agree that the code is not clean, and that an isset check is appropriate, particularly as one could do: $v = NULL; $v[0][1][2][3][4][5][6][7][8][9] ?? NULL; // NULL > Since we have debate for this PR, this PR would be good for RFC targeting > PHP 7.1. It seems to me that raising an exception or throwing an error (instead of a notice) could be too much of a BC break for a minor version. -- Christoph M. Becker