#43480 [Asn]: current,next,prev with objects
| From: | nicholsr@php.net | Date: | Sun, 02 Dec 2007 22:50:26 +0000 |
| Subject: | #43480 [Asn]: current,next,prev with objects | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-120291@lists.php.net to get a copy of this message | ||
ID: 43480
User updated by: nicholsr@php.net
Reported By: nicholsr@php.net
Status: Assigned
Bug Type: Arrays related
Operating System: all
PHP Version: 5.3CVS-2007-12-02 (snap)
Assigned To: jani
New Comment:
I do not have an opinion on whether this behaviour should be dropped. I
just noticed that the behaviour had changed. I asked Johannes if this
was a deliberate decision and he advised me to open this bug. I dont
know the source of enough PHP apps to know if this is likely to be a
major BC hit moving from PHP 5.2 to 5.3. I dont know how common this
idiom is.
Previous Comments:
------------------------------------------------------------------------
[2007-12-02 22:48:37] derick@php.net
I don't see why we should unnecessarily break BC for this though..
------------------------------------------------------------------------
[2007-12-02 22:24:10] tony2001@php.net
The change makes sense to me.
Using array funcs with objects is quite useless feature that should be
dropped IMO.
------------------------------------------------------------------------
[2007-12-02 22:22:57] johannes@php.net
Jani, I'd say it's related to your zend_parse_parameters MFH'ing.
------------------------------------------------------------------------
[2007-12-02 22:20:57] nicholsr@php.net
Description:
------------
The array functions current, next,prev and possibly others no longer
work on objects on php5.3.
The expected result below was obtained on php 5.2.
I noticed that at least one of the testcases were changed in order to
avoid calling out this change in behaviour so i wondered if it was
deliberate.
Specifically, ext/standard/tests/array/009.phpt in PHP 5.2 will check
for object behaviour but this was removed in 5.3.
Reproduce code:
---------------
<?php
class myclass {
public $prop1="prop1";
public $prop2="prop2";
};
$obj=new myclass();
var_dump (current($obj));
next ($obj);
var_dump (current($obj));
?>
Expected result:
----------------
string(5) "prop1"
string(5) "prop2"
Actual result:
--------------
Warning: current() expects parameter 1 to be array, object given in
1.php on line 12
NULL
Warning: next() expects parameter 1 to be array, object given in 1.php
on line 13
Warning: current() expects parameter 1 to be array, object given in
1.php on line 14
NULL
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=43480&edit=1