#32334 [NEW]: __set acts unexpected with variable variables

2005-04-12 Thread mk at peytz dot dk
From: mk at peytz dot dk
Operating system: Linux
PHP version:  5.0.3
PHP Bug Type: Zend Engine 2 problem
Bug description:  __set acts unexpected with variable variables

Description:

When setting variable variable values on a instance of a class with an
overloading __set function changing another instance variable goes wrong.

(I'm reporting it for version 5.0.3 because the current cvs snapshot would
not compile.)

Reproduce code:
---
http://dev.peytz.dk/~mk/setter.php
?php
class Setter
{
private $_fields = array(); // the data fields
private $_changedFields = array(); // list of changed fields

function __set($name, $value)
{
// set value
$this-_fields[$name] = $value;
// add to list of changed fields
$this-_changedFields[] = $name;
}
}
$foo = new Setter;
$foo-a = 1;
$var = b;
$foo-$var = 2;
var_export($foo);
?

Expected result:

class Setter {
  private $_fields = 
  array (
'a' = 1,
'b' = 2,
  );
  private $_changedFields = 
  array (
0 = 'a',
1 = 'b',
  );
}

Actual result:
--
class Setter {
  private $_fields = 
  array (
'a' = 1,
'b' = 2,
  );
  private $_changedFields = 
  array (
0 = 'a',
1 = '›‡ˆ',
  );
}

-- 
Edit bug report at http://bugs.php.net/?id=32334edit=1
-- 
Try a CVS snapshot (php4):   http://bugs.php.net/fix.php?id=32334r=trysnapshot4
Try a CVS snapshot (php5.0): 
http://bugs.php.net/fix.php?id=32334r=trysnapshot50
Try a CVS snapshot (php5.1): 
http://bugs.php.net/fix.php?id=32334r=trysnapshot51
Fixed in CVS:http://bugs.php.net/fix.php?id=32334r=fixedcvs
Fixed in release:http://bugs.php.net/fix.php?id=32334r=alreadyfixed
Need backtrace:  http://bugs.php.net/fix.php?id=32334r=needtrace
Need Reproduce Script:   http://bugs.php.net/fix.php?id=32334r=needscript
Try newer version:   http://bugs.php.net/fix.php?id=32334r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=32334r=support
Expected behavior:   http://bugs.php.net/fix.php?id=32334r=notwrong
Not enough info: 
http://bugs.php.net/fix.php?id=32334r=notenoughinfo
Submitted twice: 
http://bugs.php.net/fix.php?id=32334r=submittedtwice
register_globals:http://bugs.php.net/fix.php?id=32334r=globals
PHP 3 support discontinued:  http://bugs.php.net/fix.php?id=32334r=php3
Daylight Savings:http://bugs.php.net/fix.php?id=32334r=dst
IIS Stability:   http://bugs.php.net/fix.php?id=32334r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=32334r=gnused
Floating point limitations:  http://bugs.php.net/fix.php?id=32334r=float
No Zend Extensions:  http://bugs.php.net/fix.php?id=32334r=nozend
MySQL Configuration Error:   http://bugs.php.net/fix.php?id=32334r=mysqlcfg


#32334 [Opn]: __set acts unexpected with variable variables

2005-04-01 Thread mk at peytz dot dk
 ID:   32334
 User updated by:  mk at peytz dot dk
 Reported By:  mk at peytz dot dk
 Status:   Open
 Bug Type: Zend Engine 2 problem
 Operating System: Linux
-PHP Version:  5CVS-2005-03-19
+PHP Version:  5.0.4
 New Comment:

Still present in 5.0.4 but now only with NULL values.


Previous Comments:


[2005-03-19 12:38:36] [EMAIL PROTECTED]

Can't reproduce *your* behaviour with latest 5.0.x  5.1 CVS.
But some issue really exists, as I get NULL instead of 'b' with both
branches.




[2005-03-19 07:44:07] mk at peytz dot dk

But the problem persist with the CVS snapshot (which now compiles
again).



[2005-03-18 19:23:13] [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





[2005-03-16 13:29:45] mk at peytz dot dk

Description:

When setting variable variable values on a instance of a class with an
overloading __set function changing another instance variable goes
wrong.

(I'm reporting it for version 5.0.3 because the current cvs snapshot
would not compile.)

Reproduce code:
---
http://dev.peytz.dk/~mk/setter.php
?php
class Setter
{
private $_fields = array(); // the data fields
private $_changedFields = array(); // list of changed fields

function __set($name, $value)
{
// set value
$this-_fields[$name] = $value;
// add to list of changed fields
$this-_changedFields[] = $name;
}
}
$foo = new Setter;
$foo-a = 1;
$var = b;
$foo-$var = 2;
var_export($foo);
?

Expected result:

class Setter {
  private $_fields = 
  array (
'a' = 1,
'b' = 2,
  );
  private $_changedFields = 
  array (
0 = 'a',
1 = 'b',
  );
}

Actual result:
--
class Setter {
  private $_fields = 
  array (
'a' = 1,
'b' = 2,
  );
  private $_changedFields = 
  array (
0 = 'a',
1 = '›‡ˆ',
  );
}





-- 
Edit this bug report at http://bugs.php.net/?id=32334edit=1


#32334 [Fbk-Opn]: __set acts unexpected with variable variables

2005-03-18 Thread mk at peytz dot dk
 ID:   32334
 User updated by:  mk at peytz dot dk
 Reported By:  mk at peytz dot dk
-Status:   Feedback
+Status:   Open
 Bug Type: Zend Engine 2 problem
 Operating System: Linux
-PHP Version:  5.0.3
+PHP Version:  5CVS-200503190530
 New Comment:

But the problem persist with the CVS snapshot (which now compiles
again).


Previous Comments:


[2005-03-18 19:23:13] [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





[2005-03-16 13:29:45] mk at peytz dot dk

Description:

When setting variable variable values on a instance of a class with an
overloading __set function changing another instance variable goes
wrong.

(I'm reporting it for version 5.0.3 because the current cvs snapshot
would not compile.)

Reproduce code:
---
http://dev.peytz.dk/~mk/setter.php
?php
class Setter
{
private $_fields = array(); // the data fields
private $_changedFields = array(); // list of changed fields

function __set($name, $value)
{
// set value
$this-_fields[$name] = $value;
// add to list of changed fields
$this-_changedFields[] = $name;
}
}
$foo = new Setter;
$foo-a = 1;
$var = b;
$foo-$var = 2;
var_export($foo);
?

Expected result:

class Setter {
  private $_fields = 
  array (
'a' = 1,
'b' = 2,
  );
  private $_changedFields = 
  array (
0 = 'a',
1 = 'b',
  );
}

Actual result:
--
class Setter {
  private $_fields = 
  array (
'a' = 1,
'b' = 2,
  );
  private $_changedFields = 
  array (
0 = 'a',
1 = '›‡ˆ',
  );
}





-- 
Edit this bug report at http://bugs.php.net/?id=32334edit=1