Bug #12596 Updated: Definition of array using constants in array doesn't work
ID: 12596
Updated by: jeroen
Reported By: jack@mobil.cz
Old Status: Bogus
Status: Suspended
Bug Type: Class/Object related
Operating System: Linux
PHP Version: 4.0.5
New Comment:
It _is_ strange that no parse error is given. I think it should.
So IMO the bug is that it seems to work a bit, but doesn't. Either support this, or give parse
error.
I see no reason to not support a random expression though... that expression-opcodes should
internally be moved to class initialization. Since PHP 4 doesn't have a real constructor, this
won't be realizable until ZE 2 I think.
Status->Suspended
Previous Comments:
------------------------------------------------------------------------
[2001-10-02 18:34:02] sniper@php.net
Not a bug -> Bogus.
------------------------------------------------------------------------
[2001-08-06 15:27:23] jeroen@php.net
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
------------------------------------------------------------------------
[2001-08-06 09:41:56] jack@mobil.cz
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).
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=12596&edit=1
Thread (6 messages)