Doc #65942 [Nab->Opn]: PHP Notice is fired if the specified $index does not exists
| From: | bwoebi@php.net | Date: | Tue, 22 Oct 2013 10:23:27 +0000 |
| Subject: | Doc #65942 [Nab->Opn]: 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-10517@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: bwoebi@php.net
Reported by: gontijo dot douglas at gmail dot com
Summary: PHP Notice is fired if the specified $index does not
exists
-Status: Not a bug
+Status: Open
Type: Documentation Problem
Package: Documentation problem
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
That actually is a documentation problem: the docs don't state that
(new ArrayObject([â¦]))->offsetGet('undefinedIndex');
can raise a notice upon not found index.
Previous Comments:
------------------------------------------------------------------------
[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