|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #23951 Defines not working in inherited classes
Submitted: 2003-06-02 06:01 UTC Modified: 2003-06-09 12:03 UTC
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: sbecker at justseven dot de Assigned:
Status: Closed Package: Scripting Engine problem
PHP Version: 4CVS-2003-06-02 (stable) OS: Linux 2.4
Private report: No CVE-ID: None
 [2003-06-02 06:01 UTC] sbecker at justseven dot de
This bug is in some way the same as reported in #14064.

I got the following code:


define('FOO1', 1);
define('FOO2', 2);

class A {
    var $a_var = array(FOO1=>'foo1_value', FOO2=>'foo2_value');

class B extends A {
    var $b_var = 'foo';   

$a = new A;
$b = new B;



Class A is doing fine but in Class B the Zend-Engine converts my constants to strings, is that what you want?



Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2003-06-02 06:05 UTC]
Interesting behavior... I could replicate this and it's definitely a bug.
 [2003-06-04 17:37 UTC]
You can't use define()'s as constant scalar initializers; this behaviour is documented in the manual somewhere.
To initialize the array that way, do it in your object constructor.
 [2003-06-09 12:03 UTC]
Fixed in CVS.
You can apply this patch to make it work for you, or try the next stable snapshot.

PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Apr 20 17:01:29 2024 UTC