|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull Requests
Pull requests:
HistoryAllCommentsChangesGit/SVN commits
[2014-03-25 10:45 UTC] datibbaw@php.net
-Status: Open
+Status: Closed
-Assigned To:
+Assigned To: datibbaw
[2014-03-25 10:45 UTC] datibbaw@php.net
[2014-03-25 10:49 UTC] narf at devilix dot net
[2014-05-08 17:11 UTC] levim@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 01 04:00:02 2025 UTC |
Description: ------------ Given that $object['foo'] is an empty string, empty($object['foo']) returns FALSE, if $object is an instance of a class that extends ArrayObject. It returns TRUE on an instance of ArrayObject or an implementation of ArrayAccess. It never calls offsetGet() on the extended ArrayObject. Test script: --------------- <?php class ArrayObjectChild extends ArrayObject { public function offsetExists($offset) { var_dump('Called: '.__METHOD__); return parent::offsetExists($offset); } public function offsetGet($offset) { var_dump('Called: '.__METHOD__); return parent::offsetGet($offset); } } $object = new ArrayObjectChild(array('foo' => '')); var_dump(empty($object['foo'])); Expected result: ---------------- string(38) "Called: ArrayObjectChild::offsetExists" string(35) "Called: ArrayObjectChild::offsetGet" bool(true) Actual result: -------------- string(38) "Called: ArrayObjectChild::offsetExists" bool(false)