ID: 30889 User updated by: m dot gehin at adan dot asso dot fr Reported By: m dot gehin at adan dot asso dot fr -Status: Feedback +Status: Open Bug Type: Class/Object related Operating System: winxp PHP Version: 5.0.2 New Comment:
Unfortunately this snapshot doesn't solve the problem Snapshot version : Sun, 06 Mar 2005 20:50:26 +0100 Version: 5.1.0-dev Branch: HEAD Build: Release_TS Previous Comments: ------------------------------------------------------------------------ [2005-03-06 18:28:46] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip ------------------------------------------------------------------------ [2004-11-25 00:39:59] m dot gehin at adan dot asso dot fr Description: ------------ When using the ++ operator on a property that is overloaded, the value inside the class is incremented *BEFORE* the call to the __set() method. Reproduce code: --------------- class overloaded { private $values; function __construct() { $this->values = array('a' => 0); } function __set($name, $value) { print "<br>set $name = $value ($name was ".$this->values[$name].")"; $this->values[$name] = $value; } function __get($name) { print "<br>get $name (returns ".$this->values[$name].")"; return $this->values[$name]; } } $test = new overloaded(); $test->a++; // __get(), then __set() Expected result: ---------------- get a (returns 0) set a = 1 (a was 0) Actual result: -------------- get a (returns 0) set a = 1 (a was 1) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=30889&edit=1