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

Reply via email to