Annotation of embedaddon/php/ext/spl/tests/spl_004.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: SPL: iterator_apply()
! 3: --FILE--
! 4: <?php
! 5:
! 6: function my_error_handler($errno, $errstr, $errfile, $errline) {
! 7: echo "Error: $errstr\n";
! 8: }
! 9:
! 10: set_error_handler('my_error_handler');
! 11:
! 12: function test_arg($arg)
! 13: {
! 14: if ($arg instanceof Iterator)
! 15: {
! 16: var_dump($arg->key());
! 17: var_dump($arg->current());
! 18: }
! 19: else
! 20: {
! 21: var_dump($arg);
! 22: }
! 23: return true;
! 24: }
! 25:
! 26: function test()
! 27: {
! 28: static $arg = 0;
! 29: var_dump($arg++);
! 30: return true;
! 31: }
! 32:
! 33: $it = new RecursiveArrayIterator(array(1, array(21, 22), 3));
! 34:
! 35: var_dump(iterator_apply($it, 'test', NULL));
! 36:
! 37: echo "===ARGS===\n";
! 38: var_dump(iterator_apply($it, 'test_arg', array($it)));
! 39:
! 40: echo "===RECURSIVE===\n";
! 41: $it = new RecursiveIteratorIterator($it);
! 42: var_dump(iterator_apply($it, 'test'));
! 43:
! 44: echo "===ERRORS===\n";
! 45: var_dump(iterator_apply($it, 'test', 1));
! 46: var_dump(iterator_apply($it, 'non_existing_functon'));
! 47: var_dump(iterator_apply($it, 'non_existing_functon', NULL, 2));
! 48:
! 49: ?>
! 50: ===DONE===
! 51: <?php exit(0); ?>
! 52: --EXPECT--
! 53: int(0)
! 54: int(1)
! 55: int(2)
! 56: int(3)
! 57: ===ARGS===
! 58: int(0)
! 59: int(1)
! 60: int(1)
! 61: array(2) {
! 62: [0]=>
! 63: int(21)
! 64: [1]=>
! 65: int(22)
! 66: }
! 67: int(2)
! 68: int(3)
! 69: int(3)
! 70: ===RECURSIVE===
! 71: int(3)
! 72: int(4)
! 73: int(5)
! 74: int(6)
! 75: int(4)
! 76: ===ERRORS===
! 77: Error: Argument 3 passed to iterator_apply() must be an array, integer given
! 78: Error: iterator_apply() expects parameter 3 to be array, integer given
! 79: NULL
! 80: Error: iterator_apply() expects parameter 2 to be a valid callback, function 'non_existing_functon' not found or invalid function name
! 81: NULL
! 82: Error: iterator_apply() expects at most 3 parameters, 4 given
! 83: NULL
! 84: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>