From: Dmitry Stogov Date: Thu, 22 Nov 2007 10:46:44 +0000 (+0000) Subject: Fixed bug #43318 X-Git-Tag: RELEASE_2_0_0a1~1307 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=975a66da798dbb1c900bf05fb951610dfc0d8579;p=php Fixed bug #43318 The "const" statement is still allowed outside of namespaces but arrays are disabled. --- diff --git a/Zend/tests/ns_039.phpt b/Zend/tests/ns_039.phpt index 95fae8fc01..c5e79e48c5 100644 --- a/Zend/tests/ns_039.phpt +++ b/Zend/tests/ns_039.phpt @@ -2,22 +2,24 @@ 039: Constant declaration --FILE-- B)) { + foreach ($a as $key => $val) { + echo "$key\n"; + echo "$val\n"; + } +} const A = "ok"; const B = A; -const C = array("ok"); -const D = array(B); echo A . "\n"; echo B . "\n"; -print_r(C); -print_r(D); +foo(); +bar(); --EXPECT-- ok ok -Array -( - [0] => ok -) -Array -( - [0] => ok -) +ok +ok +ok diff --git a/Zend/tests/ns_040.phpt b/Zend/tests/ns_040.phpt index f017aff0bd..fb2314466c 100644 --- a/Zend/tests/ns_040.phpt +++ b/Zend/tests/ns_040.phpt @@ -6,9 +6,6 @@ namespace X; use X as Y; const A = "ok\n"; const B = A; -const C = array(A); -const D = array("aaa"=>A); -const E = array(A=>"aaa\n"); function f1($x=A) { echo $x; } @@ -42,9 +39,6 @@ f2(); f3(); f4(); echo B; -$x = C; echo $x[0]; -$x = D; echo $x["aaa"]; -$x = E; echo $x["ok\n"]; f5(); f6(); f7(); @@ -61,8 +55,5 @@ ok ok ok ok -aaa -ok -ok ok aaa diff --git a/Zend/tests/ns_059.phpt b/Zend/tests/ns_059.phpt new file mode 100755 index 0000000000..ea66037b43 --- /dev/null +++ b/Zend/tests/ns_059.phpt @@ -0,0 +1,8 @@ +--TEST-- +059: Constant arrays +--FILE-- +u.constant) == IS_CONSTANT_ARRAY) { + zend_error(E_COMPILE_ERROR, "Arrays are not allowed as constants"); + } + if (zend_get_ct_const(&name->u.constant TSRMLS_CC)) { zend_error(E_COMPILE_ERROR, "Cannot redeclare constant '%R'", Z_TYPE(name->u.constant), Z_UNIVAL(name->u.constant)); }