#30140 [Asn->Csd]: Problem with array in static properties
| From: | dmitry@php.net | Date: | Wed, 08 Jun 2005 13:22:21 +0000 |
| Subject: | #30140 [Asn->Csd]: Problem with array in static properties | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-80049@lists.php.net to get a copy of this message | ||
ID: 30140
Updated by: dmitry@php.net
Reported By: guth at fiifo dot u-psud dot fr
-Status: Assigned
+Status: Closed
Bug Type: Zend Engine 2 problem
Operating System: *
PHP Version: 5CVS-2005-05-07
Assigned To: dmitry
New Comment:
Fixed in CVS HEAD and PHP_5_0.
Previous Comments:
------------------------------------------------------------------------
[2005-06-08 11:18:53] dmitry@php.net
No this is another bug. The problem is in zval_update_constant().
Reproduce code:
---------------
<?php
class A {
public static $test1 = true;
public static $test2 = array();
public static $test3 = "str";
}
class B extends A {
}
A::$test1 = "x";
A::$test2 = "y";
A::$test3 = "z";
var_dump(A::$test1);
var_dump(A::$test2);
var_dump(A::$test3);
var_dump(B::$test1);
var_dump(B::$test2);
var_dump(B::$test3);
?>
Expected result:
----------------
string(1) "x"
string(1) "y"
string(1) "z"
string(1) "x"
string(1) "y"
string(1) "z"
Actual result:
--------------
string(1) "x"
string(1) "y"
string(1) "z"
bool(true)
array(0) {
}
string(1) "z"
------------------------------------------------------------------------
[2005-05-17 16:27:37] stas@php.net
It's definitely duplicate for bug #30934.
------------------------------------------------------------------------
[2005-05-09 11:34:31] sniper@php.net
This same thing happens with boolean too. All other types behave
correctly (or incorrectly, not sure anymore :)
Andi, (or Dmitry maybe?) can you look into this?
------------------------------------------------------------------------
[2005-04-05 23:24:10] tony2001@php.net
Yet another duplicate of bug #30934.
------------------------------------------------------------------------
[2004-09-18 17:02:22] guth at fiifo dot u-psud dot fr
Description:
------------
[ sorry for english ]
There is a problem with static properties initialized as
an array in classes.
In the following code, if you replace "public static $test
= array();" by "public static $test;" or if you initialize
the property with not an array ("public static $test =
12;" for example), it works as expected.
Reproduce code:
---------------
<?
class A {
public static $test = array();
public function set($var) {
self::$test = $var;
}
public static function view() {
var_dump(self::$test);
}
}
class B extends A {
public static function view() {
var_dump(self::$test);
}
}
$class = new B;
$class->set(array('key' => 'value'));
A::view();
B::view();
?>
Expected result:
----------------
array(1) { ["key"]=> string(5) "value" }
array(1) { ["key"]=> string(5) "value" }
Actual result:
--------------
array(1) { ["key"]=> string(5) "value" }
array(0) { }
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=30140&edit=1