#43480 [Asn]: current,next,prev with objects

From: 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

« previous php.bugs (#120291) next »