Annotation of embedaddon/php/ext/spl/tests/bug38618.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #38618 (RecursiveArrayIterator::hasChildren() follows objects)
! 3: --FILE--
! 4: <?php # vim:ft=php
! 5:
! 6: class FruitPublic
! 7: {
! 8: public $title;
! 9:
! 10: public function __construct($title)
! 11: {
! 12: $this->title = $title;
! 13: }
! 14:
! 15: public function __toString()
! 16: {
! 17: return $this->title;
! 18: }
! 19: }
! 20:
! 21: class FruitProtected
! 22: {
! 23: protected $title;
! 24:
! 25: public function __construct($title)
! 26: {
! 27: $this->title = $title;
! 28: }
! 29:
! 30: public function __toString()
! 31: {
! 32: return $this->title;
! 33: }
! 34: }
! 35:
! 36: function test_array($array, $which, $flags = 0)
! 37: {
! 38: echo "===$which===\n";
! 39: $it = new RecursiveArrayIterator($array, $flags);
! 40: foreach (new RecursiveIteratorIterator($it) as $k => $fruit) {
! 41: echo $k , ' => ', $fruit, "\n";
! 42: }
! 43: }
! 44:
! 45: $array = array(
! 46: 1 => array(
! 47: 1 => array(
! 48: 1 => 'apple',
! 49: ),
! 50: 2 => array(
! 51: 1 => 'grape',
! 52: ),
! 53: ),
! 54: );
! 55:
! 56: test_array($array, 'Default with array');
! 57:
! 58: $array = array(
! 59: 1 => array(
! 60: 1 => array(
! 61: 1 => new FruitPublic('apple'),
! 62: ),
! 63: 2 => array(
! 64: 1 => new FruitPublic('grape'),
! 65: ),
! 66: ),
! 67: );
! 68:
! 69: test_array($array, 'Public Property');
! 70:
! 71: $array = array(
! 72: 1 => array(
! 73: 1 => array(
! 74: 1 => new FruitProtected('apple'),
! 75: ),
! 76: 2 => array(
! 77: 1 => new FruitProtected('grape'),
! 78: ),
! 79: ),
! 80: );
! 81:
! 82: test_array($array, 'Protected Property');
! 83:
! 84: test_array($array, 'Public Property New', RecursiveArrayIterator::CHILD_ARRAYS_ONLY);
! 85: test_array($array, 'Protected Property New', RecursiveArrayIterator::CHILD_ARRAYS_ONLY);
! 86: ?>
! 87: ===DONE===
! 88: <?php exit(0); ?>
! 89: ?>
! 90: ===DONE===
! 91: --EXPECTF--
! 92: ===Default with array===
! 93: 1 => apple
! 94: 1 => grape
! 95: ===Public Property===
! 96: title => apple
! 97: title => grape
! 98: ===Protected Property===
! 99: ===Public Property New===
! 100: 1 => apple
! 101: 1 => grape
! 102: ===Protected Property New===
! 103: 1 => apple
! 104: 1 => grape
! 105: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>