com php-src: 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.: Zend/tests/constant _expressions_arrays.phpt Zend/tests/constant_expressi ons_self_referencing_array.phpt

From: Date: Wed, 02 Jul 2014 10:33:46 +0000
Subject: com php-src: 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.: Zend/tests/constant _expressions_arrays.phpt Zend/tests/constant_expressi ons_self_referencing_array.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-79195@lists.php.net to get a copy of this message
Commit: 09d1a8aaab15eef182dd71cf6aa506f54dc70ea7 Author: Bob Weinand <bobwei9@hotmail.com> Wed, 2 Jul 2014 12:31:50 +0200 Parents: 05cc46a96b44c4b0ead2909864c9b683103c5946 Branches: PHP-5.6 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=09d1a8aaab15eef182dd71cf6aa506f54dc70ea7 Log: 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. Changed paths: A Zend/tests/constant_expressions_arrays.phpt A Zend/tests/constant_expressions_self_referencing_array.phpt Diff: diff --git a/Zend/tests/constant_expressions_arrays.phpt b/Zend/tests/constant_expressions_arrays.phpt new file mode 100644 index 0000000..f1f0251 --- /dev/null +++ b/Zend/tests/constant_expressions_arrays.phpt @@ -0,0 +1,35 @@ +---TEST--- +Constant expressions with arrays +---FILE--- +<?php +const a = [1,2,[3,[4]]]; +const b = a[0]; +const c = a[2][0]; +const d = a[2]; +const e = ["string" => [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 0000000..7fc477d --- /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--- +<?php +class A { + const FOO = [self::BAR]; + const BAR = [self::FOO]; +} +var_dump(A::FOO); +?> +---EXPECTF--- +Fatal error: Cannot declare self-referencing constant 'self::FOO' in %s on line %d +

« previous php.cvs (#79195) next »