From: Bob Weinand Date: Wed, 2 Jul 2014 10:31:50 +0000 (+0200) Subject: Add tests for constant expression arrays X-Git-Tag: PRE_PHPNG_MERGE~136^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=09d1a8aaab15eef182dd71cf6aa506f54dc70ea7;p=php Add tests for constant expression arrays Adding one failing (!) test for now about circular constant references embedded in a constant AST, must be fixed before PHP 5.6 release. --- diff --git a/Zend/tests/constant_expressions_arrays.phpt b/Zend/tests/constant_expressions_arrays.phpt new file mode 100644 index 0000000000..f1f025180e --- /dev/null +++ b/Zend/tests/constant_expressions_arrays.phpt @@ -0,0 +1,35 @@ +---TEST--- +Constant expressions with arrays +---FILE--- + [1]]["string"][0]; + +var_dump(b, c, e); + +function test ($a = d[1][0]) { + var_dump($a); +} + +test(); + +class foo { + const bar = [1][0]; +} + +var_dump(foo::bar); + +var_dump(a); // Eventually allow that later with array dereferencing of constants + +?> +---EXPECTF--- +int(1) +int(3) +int(1) +int(4) +int(1) + +Fatal error: Arrays are not allowed in constants at run-time in %s on line %d diff --git a/Zend/tests/constant_expressions_self_referencing_array.phpt b/Zend/tests/constant_expressions_self_referencing_array.phpt new file mode 100644 index 0000000000..7fc477d470 --- /dev/null +++ b/Zend/tests/constant_expressions_self_referencing_array.phpt @@ -0,0 +1,13 @@ +---TEST--- +Self-referencing constant expression (part of a constant AST) +---FILE--- + +---EXPECTF--- +Fatal error: Cannot declare self-referencing constant 'self::FOO' in %s on line %d +