Annotation of embedaddon/php/ext/standard/tests/array/array_diff_variation7.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test array_diff() function : usage variations - arrays containing referenced variables
! 3: --FILE--
! 4: <?php
! 5: /* Prototype : array array_diff(array $arr1, array $arr2 [, array ...])
! 6: * Description: Returns the entries of $arr1 that have values which are not
! 7: * present in any of the others arguments.
! 8: * Source code: ext/standard/array.c
! 9: */
! 10:
! 11: /*
! 12: * Test how array_diff compares arrays that
! 13: * 1. Contain referenced variables
! 14: * 2. Have been referenced to each other
! 15: */
! 16:
! 17: echo "*** Testing array_diff() : usage variations ***\n";
! 18: $a = 'a';
! 19:
! 20: $arr1 = array ("&$a", 'b', 'c');
! 21: $arr2 = array (1, 2, 3);
! 22: echo "-- Basic Comparison --\n";
! 23: var_dump(array_diff($arr1, $arr2));
! 24: var_dump(array_diff($arr2, $arr1));
! 25:
! 26: $a = 1;
! 27:
! 28: echo "-- \$a changed --\n";
! 29: var_dump(array_diff($arr1, $arr2));
! 30: var_dump(array_diff($arr2, $arr1));
! 31:
! 32:
! 33: $arr2 = &$arr1;
! 34: echo "-- Arrays referenced to each other --\n";
! 35: var_dump(array_diff($arr1, $arr2));
! 36: var_dump(array_diff($arr2, $arr1));
! 37:
! 38:
! 39: $arr1 = array('x', 'y', 'z');
! 40: echo "-- \$arr1 changed --\n";
! 41: var_dump(array_diff($arr1, $arr2));
! 42: var_dump(array_diff($arr2, $arr1));
! 43:
! 44:
! 45: echo "Done";
! 46: ?>
! 47:
! 48: --EXPECTF--
! 49:
! 50: *** Testing array_diff() : usage variations ***
! 51: -- Basic Comparison --
! 52: array(3) {
! 53: [0]=>
! 54: string(2) "&a"
! 55: [1]=>
! 56: string(1) "b"
! 57: [2]=>
! 58: string(1) "c"
! 59: }
! 60: array(3) {
! 61: [0]=>
! 62: int(1)
! 63: [1]=>
! 64: int(2)
! 65: [2]=>
! 66: int(3)
! 67: }
! 68: -- $a changed --
! 69: array(3) {
! 70: [0]=>
! 71: string(2) "&a"
! 72: [1]=>
! 73: string(1) "b"
! 74: [2]=>
! 75: string(1) "c"
! 76: }
! 77: array(3) {
! 78: [0]=>
! 79: int(1)
! 80: [1]=>
! 81: int(2)
! 82: [2]=>
! 83: int(3)
! 84: }
! 85: -- Arrays referenced to each other --
! 86: array(0) {
! 87: }
! 88: array(0) {
! 89: }
! 90: -- $arr1 changed --
! 91: array(0) {
! 92: }
! 93: array(0) {
! 94: }
! 95: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>