Doc #65942 [Opn->Csd]: PHP Notice is fired if the specified $index does not exists
| From: | daverandom@php.net | Date: | Tue, 22 Oct 2013 10:41:19 +0000 |
| Subject: | Doc #65942 [Opn->Csd]: PHP Notice is fired if the specified $index does not exists | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-10518@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=65942&edit=1
ID: 65942
Updated by: daverandom@php.net
Reported by: gontijo dot douglas at gmail dot com
Summary: PHP Notice is fired if the specified $index does not
exists
-Status: Open
+Status: Closed
Type: Documentation Problem
Package: Documentation problem
PHP Version: Irrelevant
-Assigned To:
+Assigned To: daverandom
Block user comment: N
Private report: N
New Comment:
This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.
Thank you for the report, and for helping us make our documentation better.
Previous Comments:
------------------------------------------------------------------------
[2013-10-22 10:40:31] daverandom@php.net
Automatic comment from SVN on behalf of daverandom
Revision: http://svn.php.net/viewvc/?view=revision&revision=331907
Log: Document E_NOTICE emitted when an undefined index is supplied to ArrayObject::offsetGet(). Fix
for bug #65942.
------------------------------------------------------------------------
[2013-10-22 10:23:27] bwoebi@php.net
That actually is a documentation problem: the docs don't state that
(new ArrayObject([â¦]))->offsetGet('undefinedIndex');
can raise a notice upon not found index.
------------------------------------------------------------------------
[2013-10-22 08:32:23] krakjoe@php.net
This is expected behaviour; isset/offsetExists does not request a read of the element requested,
only checks for it's presence.
It would not be useful for isset/offsetExists to raise a warning; it is however expected that if you
read from a non-existent element a warning will be raised, because you have not checked for the
presence of the element but requested the elements data, which doesn't exist.
------------------------------------------------------------------------
[2013-10-22 01:11:16] gontijo dot douglas at gmail dot com
Description:
------------
---
From manual page: http://www.php.net/arrayobject.offsetget#refsect1-arrayobject.offsetget-returnvalues
---
It'll fire a PHP Notice if the specified $index does not exists
Test script:
---------------
<?php
// from http://www.php.net/manual/en/arrayobject.offsetget.php#example-3971
$arrayobj = new ArrayObject(array('zero', 7, 'example'=>'e.g.'));
var_dump($arrayobj->offsetGet(1));
var_dump($arrayobj->offsetGet('example'));
var_dump($arrayobj->offsetExists('notfound'));
// added by me
var_dump($arrayobj->offsetGet('notfound')); //shouldn't return null silently?
Expected result:
----------------
int(7)
string(4) "e.g."
bool(false)
NULL
Actual result:
--------------
int(7)
string(4) "e.g."
bool(false)
Notice: Undefined index: notfound in test.php on line 8
NULL
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=65942&edit=1