Annotation of embedaddon/php/tests/lang/engine_assignExecutionOrder_003.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Evaluation order during assignments.
3: --FILE--
4: <?php
5: $b = "bb";
6: $a = "aa";
7:
8: function foo()
9: {
10: echo "Bad call\n";
11: }
12:
13: function baa()
14: {
15: echo "Good call\n";
16: }
17:
18: $bb = "baa";
19:
20: $aa = "foo";
21:
22: $c = ${$a=$b};
23:
24: $c();
25:
26: $a1 = array("dead","dead","dead");
27: $a2 = array("dead","dead","live");
28: $a3 = array("dead","dead","dead");
29:
30: $a = array($a1,$a2,$a3);
31:
32: function live()
33: {
34: echo "Good call\n";
35: }
36:
37: function dead()
38: {
39: echo "Bad call\n";
40: }
41:
42: $i = 0;
43:
44: $a[$i=1][++$i]();
45:
46: $a = -1;
47:
48: function foo1()
49: {
50: global $a;
51: return ++$a;
52: }
53:
54: $arr = array(array(0,0),0);
55:
56: $brr = array(0,0,array(0,0,0,5),0);
57: $crr = array(0,0,0,0,array(0,0,0,0,0,10),0,0);
58:
59: $arr[foo1()][foo1()] = $brr[foo1()][foo1()] +
60: $crr[foo1()][foo1()];
61:
62: $val = $arr[0][1];
63: echo "Expect 15 and get...$val\n";
64:
65: $x = array(array(0),0);
66: function mod($b)
67: {
68: global $x;
69: $x = $b;
70: return 0;
71: }
72:
73: $x1 = array(array(1),1);
74: $x2 = array(array(2),2);
75: $x3 = array(array(3),3);
76: $bx = array(10);
77:
78: $x[mod($x1)][mod($x2)] = $bx[mod($x3)];
79:
80: // expecting 10,3
81:
82: var_dump($x);
83: ?>
84: --EXPECT--
85: Good call
86: Good call
87: Expect 15 and get...15
88: array(2) {
89: [0]=>
90: array(1) {
91: [0]=>
92: int(10)
93: }
94: [1]=>
95: int(3)
96: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>