Return to engine_assignExecutionOrder_003.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / lang |
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: }