[PHP-BUG] Bug #52332 [NEW]: Static Member Reference Not Updating

2010-07-13 Thread kolb0057 at umn dot edu
From: 
Operating system: Windows XP Home SP3
PHP version:  5.2.13
Package:  Class/Object related
Bug Type: Bug
Bug description:Static Member Reference Not Updating

Description:

When an object's member is assigned as a reference to a different class'
static member and that static member is itself later assigned by reference,
the original object member's reference is not being updated.





I posted this question to the PHP General Mailing List.  One user confirmed
the bug for V5.0.0 to V5.3.3RC2.  In case you would like to search the
archive, the subject of the email was Static Class Member References.

Test script:
---
?php

class A

{

  public static $a = 3;

}



class B 

{

public $b;



public function assign()

{

$this-b = A::$a;

}

}



$b = new B;

$a = new A;

$b-assign();

A::$a = $a;



var_dump($b-b); // expected: object(A) | result: int 3

?

Expected result:

I expect 'var_dump($b-b);'  to print: object(A).

Actual result:
--
'var_dump($b-b);' is actually printing 'int 3'.

-- 
Edit bug report at http://bugs.php.net/bug.php?id=52332edit=1
-- 
Try a snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=52332r=trysnapshot52
Try a snapshot (PHP 5.3):
http://bugs.php.net/fix.php?id=52332r=trysnapshot53
Try a snapshot (trunk):  
http://bugs.php.net/fix.php?id=52332r=trysnapshottrunk
Fixed in SVN:
http://bugs.php.net/fix.php?id=52332r=fixed
Fixed in SVN and need be documented: 
http://bugs.php.net/fix.php?id=52332r=needdocs
Fixed in release:
http://bugs.php.net/fix.php?id=52332r=alreadyfixed
Need backtrace:  
http://bugs.php.net/fix.php?id=52332r=needtrace
Need Reproduce Script:   
http://bugs.php.net/fix.php?id=52332r=needscript
Try newer version:   
http://bugs.php.net/fix.php?id=52332r=oldversion
Not developer issue: 
http://bugs.php.net/fix.php?id=52332r=support
Expected behavior:   
http://bugs.php.net/fix.php?id=52332r=notwrong
Not enough info: 
http://bugs.php.net/fix.php?id=52332r=notenoughinfo
Submitted twice: 
http://bugs.php.net/fix.php?id=52332r=submittedtwice
register_globals:
http://bugs.php.net/fix.php?id=52332r=globals
PHP 4 support discontinued:  http://bugs.php.net/fix.php?id=52332r=php4
Daylight Savings:http://bugs.php.net/fix.php?id=52332r=dst
IIS Stability:   
http://bugs.php.net/fix.php?id=52332r=isapi
Install GNU Sed: 
http://bugs.php.net/fix.php?id=52332r=gnused
Floating point limitations:  
http://bugs.php.net/fix.php?id=52332r=float
No Zend Extensions:  
http://bugs.php.net/fix.php?id=52332r=nozend
MySQL Configuration Error:   
http://bugs.php.net/fix.php?id=52332r=mysqlcfg



Bug #52332 [Opn]: Static Member Reference Not Updating

2010-07-13 Thread kolb0057 at umn dot edu
Edit report at http://bugs.php.net/bug.php?id=52332edit=1

 ID:   52332
 User updated by:  kolb0057 at umn dot edu
 Reported by:  kolb0057 at umn dot edu
 Summary:  Static Member Reference Not Updating
 Status:   Open
 Type: Bug
 Package:  Class/Object related
 Operating System: Windows XP Home SP3
 PHP Version:  5.2.13

 New Comment:

Thank you.


Previous Comments:

[2010-07-14 03:13:00] kolb0057 at umn dot edu

Description:

When an object's member is assigned as a reference to a different class'
static member and that static member is itself later assigned by
reference, the original object member's reference is not being updated.





I posted this question to the PHP General Mailing List.  One user
confirmed the bug for V5.0.0 to V5.3.3RC2.  In case you would like to
search the archive, the subject of the email was Static Class Member
References.

Test script:
---
?php

class A

{

  public static $a = 3;

}



class B 

{

public $b;



public function assign()

{

$this-b = A::$a;

}

}



$b = new B;

$a = new A;

$b-assign();

A::$a = $a;



var_dump($b-b); // expected: object(A) | result: int 3

?

Expected result:

I expect 'var_dump($b-b);'  to print: object(A).

Actual result:
--
'var_dump($b-b);' is actually printing 'int 3'.






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