Blame view
dompdf/src/Frame/FrameListIterator.php
1.46 KB
670b6d6f8
![]() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
<?php namespace Dompdf\Frame; use Iterator; use Dompdf\Frame; /** * Linked-list Iterator * * Returns children in order and allows for list to change during iteration, * provided the changes occur to or after the current element * * @access private * @package dompdf */ class FrameListIterator implements Iterator { /** * @var Frame */ protected $_parent; /** * @var Frame */ protected $_cur; /** * @var int */ protected $_num; /** * @param Frame $frame */ public function __construct(Frame $frame) { $this->_parent = $frame; $this->_cur = $frame->get_first_child(); $this->_num = 0; } /** * */ public function rewind() { $this->_cur = $this->_parent->get_first_child(); $this->_num = 0; } /** * @return bool */ public function valid() { return isset($this->_cur); // && ($this->_cur->get_prev_sibling() === $this->_prev); } /** * @return int */ public function key() { return $this->_num; } /** * @return Frame */ public function current() { return $this->_cur; } /** * @return Frame */ public function next() { $ret = $this->_cur; if (!$ret) { return null; } $this->_cur = $this->_cur->get_next_sibling(); $this->_num++; return $ret; } } |