diff options
Diffstat (limited to 'tests/lang/engine_assignExecutionOrder_006.phpt')
-rw-r--r-- | tests/lang/engine_assignExecutionOrder_006.phpt | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/tests/lang/engine_assignExecutionOrder_006.phpt b/tests/lang/engine_assignExecutionOrder_006.phpt new file mode 100644 index 0000000000..faa34c387a --- /dev/null +++ b/tests/lang/engine_assignExecutionOrder_006.phpt @@ -0,0 +1,138 @@ +--TEST-- +Evaluation order during assignments. +--FILE-- +<?php + +function i1() { + echo "i1\n"; + return 0; +} + +function i2() { + echo "i2\n"; + return 0; +} + +function i3() { + echo "i3\n"; + return 0; +} + +function i4() { + echo "i4\n"; + return 0; +} + +function i5() { + echo "i5\n"; + return 0; +} + +function i6() { + echo "i6\n"; + return 0; +} + +$a = array(array(0)); +$b = array(array(1)); +$c = array(array(2)); + +$a[i1()][i2()] = ($b[i3()][i4()] = $c[i5()][i6()]); +var_dump($a); +var_dump($b); +var_dump($c); + +$a[i1()][i2()] = $b[i3()][i4()] = -$c[i5()][i6()]; +var_dump($a); +var_dump($b); +var_dump($c); + +$a[i1()][i2()] = -($b[i3()][i4()] = +($c[i5()][i6()])); +var_dump($a); +var_dump($b); +var_dump($c); + + +?> +--EXPECT-- +i1 +i2 +i3 +i4 +i5 +i6 +array(1) { + [0]=> + array(1) { + [0]=> + int(2) + } +} +array(1) { + [0]=> + array(1) { + [0]=> + int(2) + } +} +array(1) { + [0]=> + array(1) { + [0]=> + int(2) + } +} +i1 +i2 +i3 +i4 +i5 +i6 +array(1) { + [0]=> + array(1) { + [0]=> + int(-2) + } +} +array(1) { + [0]=> + array(1) { + [0]=> + int(-2) + } +} +array(1) { + [0]=> + array(1) { + [0]=> + int(2) + } +} +i1 +i2 +i3 +i4 +i5 +i6 +array(1) { + [0]=> + array(1) { + [0]=> + int(-2) + } +} +array(1) { + [0]=> + array(1) { + [0]=> + int(2) + } +} +array(1) { + [0]=> + array(1) { + [0]=> + int(2) + } +} |