Annotation of embedaddon/php/tests/lang/engine_assignExecutionOrder_003.phpt, revision 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>