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]