diff options
Diffstat (limited to 'Zend/tests/constant_expressions_coalesce.phpt')
-rw-r--r-- | Zend/tests/constant_expressions_coalesce.phpt | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Zend/tests/constant_expressions_coalesce.phpt b/Zend/tests/constant_expressions_coalesce.phpt new file mode 100644 index 0000000000..425aba69c4 --- /dev/null +++ b/Zend/tests/constant_expressions_coalesce.phpt @@ -0,0 +1,47 @@ +--TEST-- +Constant expressions with null coalescing operator ?? +--FILE-- +<?php + +const A = [1 => [[]]]; + +const T_1 = null ?? A[1]['undefined']['index'] ?? 1; +const T_2 = null ?? A['undefined']['index'] ?? 2; +const T_3 = null ?? A[1][0][2] ?? 3; +const T_4 = A[1][0][2] ?? 4; +const T_5 = null ?? __LINE__; +const T_6 = __LINE__ ?? "bar"; + +var_dump(T_1); +var_dump(T_2); +var_dump(T_3); +var_dump(T_4); +var_dump(T_5); +var_dump(T_6); + +var_dump((function(){ static $var = null ?? A[1]['undefined']['index'] ?? 1; return $var; })()); +var_dump((function(){ static $var = null ?? A['undefined']['index'] ?? 2; return $var; })()); +var_dump((function(){ static $var = null ?? A[1][0][2] ?? 3; return $var; })()); +var_dump((function(){ static $var = A[1][0][2] ?? 4; return $var; })()); + +var_dump((new class { public $var = null ?? A[1]['undefined']['index'] ?? 1; })->var); +var_dump((new class { public $var = null ?? A['undefined']['index'] ?? 2; })->var); +var_dump((new class { public $var = null ?? A[1][0][2] ?? 3; })->var); +var_dump((new class { public $var = A[1][0][2] ?? 4; })->var); + +?> +--EXPECTF-- +int(1) +int(2) +int(3) +int(4) +int(%d) +int(%d) +int(1) +int(2) +int(3) +int(4) +int(1) +int(2) +int(3) +int(4) |