This is a bug. If it's not a bug in classes, it definitely is a bug in
the language scanner/parser.

It doesn't even issue a warning, it just happily crunches the code and
executes it. This is not the way a robust interpreter should behave.

Jan 

Bug Database wrote:
> ID: 12596
> Updated by: jeroen
> Reported By: [EMAIL PROTECTED]
> Old Status: Open
> Status: Feedback
> Bug Type: Class/Object related
> Operating System: Linux
> PHP Version: 4.0.5
> New Comment:
> 
> This isn't supposed to work (class-var initing is not allowed for non-scalar (for 
>example array) values).
> 
> It is funny that it turns out to work this way, a parse-error would be better IMO.
> 
> But it is not a bug, changing status to feedback.
> 
> It is in the manual somewhere that this isn't allowed, try language -> classes and 
>object
> 
> Previous Comments:
> ------------------------------------------------------------------------
> 
> [2001-08-06 09:41:56] [EMAIL PROTECTED]
> 
> The following piece of code doesn't work:
> 
> <?
>     define ('A', 20);
> 
>     class B
>     {
>       var $a = array(A => 10);
>     }
> 
>     $b = new B();
>     var_dump($b);
> ?>
> 
> It produces:
> 
> object(b)(1) {
>   ["a"]=>
>   array(1) {
>     ["A"]=>
>     int(10)
>   }
> }
> 
> which is unexpected (at least for me).
> 
> ------------------------------------------------------------------------
> 
> 
> 
> ATTENTION! Do NOT reply to this email!
> To reply, use the web interface found at http://bugs.php.net/?id=12596&edit=2

-- 
Jan Fedak                                         mailto:[EMAIL PROTECTED]  
                Linux - the ultimate NT Service Pack.  

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to