Bug #50816 [PATCH]: Using class constants in array definition fails (works in PHP_5_2)
Edit report at https://bugs.php.net/bug.php?id=50816&edit=1
ID: 50816
Patch added by: pierrick@php.net
Reported by: spasic dot dejan at yahoo dot de
Summary: Using class constants in array definition fails
(works in PHP_5_2)
Status: Verified
Type: Bug
Package: Scripting Engine problem
Operating System: *
PHP Version: 5.3, 6
Block user comment: N
Private report: N
New Comment:
The following patch has been added/updated:
Patch Name: 50816.diff
Revision: 1311900851
URL: https://bugs.php.net/patch-display.php?bug=50816&patch=50816.diff&revision=1311900851
Previous Comments:
------------------------------------------------------------------------
[2010-01-22 13:45:10] jani@php.net
Works as expected in PHP 5.2, fails with 5.3 and above.
------------------------------------------------------------------------
[2010-01-21 22:14:08] spasic dot dejan at yahoo dot de
Description:
------------
Some lines of code is worth a thousand words
Reproduce code:
---------------
class Foo {
const ONE = 1;
const TWO = 1;
public static $mapWithConst = array(self::ONE => 'one', self::TWO =>
'two',);
public static $mapWithoutConst = array(17 => 'one', 17 => 'two',);
}
$mapWithConst = array(1 => 'one', 1 => 'two',);
$mapWithoutConst = array(Foo::ONE => 'one', Foo::TWO => 'two',);
var_dump(Foo::$mapWithConst);
var_dump(Foo::$mapWithoutConst);
var_dump($mapWithConst);
var_dump($mapWithoutConst);
Expected result:
----------------
array(1) {
[1]=>
string(3) "two"
}
array(1) {
[17]=>
string(3) "two"
}
array(1) {
[1]=>
string(3) "two"
}
array(1) {
[1]=>
string(3) "two"
}
Actual result:
--------------
array(1) {
[1]=>
string(3) "one" // ???
}
array(1) {
[17]=>
string(3) "two"
}
array(1) {
[1]=>
string(3) "two"
}
array(1) {
[1]=>
string(3) "two"
}
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=50816&edit=1
Thread (11 messages)
- spasic dot dejan at yahoo dot de
- jani@php.net#50816 [Opn->Ver]: field are not overridden by same index in a assingment
- pierrick@php.netBug #50816 [PATCH]: Using class constants in array definition fails (works in PHP_5_2)
- pierrick@php.netBug #50816 [PATCH]: Using class constants in array definition fails (works in PHP_5_2)
- pierrick@php.netBug #50816 [PATCH]: Using class constants in array definition fails (works in PHP_5_2)
- pierrick@php.netBug #50816 [Ver]: Using class constants in array definition fails (works in PHP_5_2)
- laruence@php.netBug #50816 [PATCH]: Using class constants in array definition fails (works in PHP_5_2)
- laruence@php.netBug #50816 [Ver]: Using class constants in array definition fails (works in PHP_5_2)
- laruence@php.netBug #50816 [PATCH]: Using class constants in array definition fails (works in PHP_5_2)
- laruence@php.netBug #50816 [Com]: Using class constants in array definition fails (works in PHP_5_2)
- dmitry@php.netBug #50816 [Ver->Csd]: Using class constants in array definition fails (works in PHP_5_2)