Fixing #3, Transversable objects should be iterated over.
This commit is contained in:
committed by
Justin Hileman
parent
6084a37a3c
commit
c45550e9e5
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
class Sections_Iterator_Object extends Mustache {
|
||||
public $start = "It worked the first time.";
|
||||
|
||||
public function middle() {
|
||||
return new Iterator_Object;
|
||||
}
|
||||
|
||||
public $final = "Then, surprisingly, it worked the final time.";
|
||||
}
|
||||
|
||||
class Iterator_Object implements Iterator
|
||||
{
|
||||
protected $_position = 0;
|
||||
|
||||
protected $_data = array(
|
||||
array('item' => 'And it worked the second time.'),
|
||||
array('item' => 'As well as the third.'),
|
||||
);
|
||||
|
||||
public function rewind() {
|
||||
$this->_position = 0;
|
||||
}
|
||||
|
||||
public function current() {
|
||||
return $this->_data[$this->_position];
|
||||
}
|
||||
|
||||
public function key() {
|
||||
return $this->_position;
|
||||
}
|
||||
|
||||
public function next() {
|
||||
++$this->_position;
|
||||
}
|
||||
|
||||
public function valid() {
|
||||
return isset($this->_data[$this->_position]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
* {{ start }}
|
||||
{{# middle }}
|
||||
* {{ item }}
|
||||
{{/ middle }}
|
||||
* {{ final }}
|
||||
@@ -0,0 +1,4 @@
|
||||
* It worked the first time.
|
||||
* And it worked the second time.
|
||||
* As well as the third.
|
||||
* Then, surprisingly, it worked the final time.
|
||||
Reference in New Issue
Block a user