首页 > php教程 > php手册 > 正文

php迭代器,php代器

WBOY
发布: 2016-06-13 08:50:42
原创
1095 人浏览过

php迭代器,php代器

implements Iterator , 实现Iterator 的 current(); next(); key(); valid(); rewind();

<span> 1</span> <?<span>php
</span><span> 2</span> <span>/*</span>
<span> 3</span> <span> *先定义一个数组
</span><span> 4</span> <span> *定义第一个位置 $position = 0
</span><span> 5</span> <span> *然后返回key 和value,
</span><span> 6</span> <span> *指向下一个位置 ++$position
</span><span> 7</span>  <span>*/</span>  
<span> 8</span> <span>class</span> myIterator <span>implements</span><span> Iterator{
</span><span> 9</span>         <span>//</span><span>先定义一个位置</span>
<span>10</span>         <span>private</span> <span>$position</span>  = 0<span>;
</span><span>11</span>         <span>private</span> <span>$array</span><span>;
</span><span>12</span> 
<span>13</span>         <span>public</span> <span>function</span> __construct(<span>array</span> <span>$array</span><span>){
</span><span>14</span>             <span>$this</span>-><span>array</span> = <span>$array</span><span>;
</span><span>15</span> <span>        }
</span><span>16</span>         <span>/*</span><span>*
</span><span>17</span> <span>         * 倒带第一个元素的迭代器
</span><span>18</span> <span>         * @return void 任何返回值将被忽略.
</span><span>19</span>          <span>*/</span>
<span>20</span>         <span>public</span> <span>function</span> <span>rewind</span><span>(){
</span><span>21</span>             <span>var_dump</span>(<span>__METHOD__</span><span>);
</span><span>22</span>             <span>$this</span>->position = 0<span>;
</span><span>23</span> <span>        }
</span><span>24</span>         <span>/*</span><span>*
</span><span>25</span> <span>         * 检查当前位置是有效的
</span><span>26</span> <span>         * @return boolean 返回值将bool型布尔,然后评估
</span><span>27</span>          <span>*/</span>
<span>28</span>         <span>public</span> <span>function</span><span> valid(){
</span><span>29</span>             <span>var_dump</span>(<span>__METHOD__</span><span>);
</span><span>30</span>             <span>//</span><span>判断数组第一个元素是否存在</span>
<span>31</span>             <span>return</span> <span>isset</span>(<span>$this</span>-><span>array</span>[<span>$this</span>-><span>position]);
</span><span>32</span> <span>        }
</span><span>33</span>         <span>/*</span><span>*
</span><span>34</span> <span>         * 返回当前元素
</span><span>35</span> <span>         * @return mixed 可以返回任何类型。
</span><span>36</span>          <span>*/</span>
<span>37</span>         <span>public</span> <span>function</span> <span>current</span><span>(){
</span><span>38</span>             <span>var_dump</span>(<span>__METHOD__</span><span>);
</span><span>39</span>             <span>//</span><span>返回数组的第一个元素</span>
<span>40</span>             <span>return</span> <span>$this</span>-><span>array</span>[<span>$this</span>-><span>position];
</span><span>41</span> <span>        }
</span><span>42</span>         <span>/*</span><span>*
</span><span>43</span> <span>         * 返回当前元素的关键
</span><span>44</span> <span>         * @return mixed 标量成功,或null失败
</span><span>45</span>          <span>*/</span>
<span>46</span>         <span>public</span> <span>function</span> <span>key</span><span>(){
</span><span>47</span>             <span>var_dump</span>(<span>__METHOD__</span><span>);
</span><span>48</span>             <span>//</span><span>返回数组第一个元素的key</span>
<span>49</span>             <span>return</span> <span>$this</span>-><span>position;
</span><span>50</span> <span>        }
</span><span>51</span>         <span>/*</span><span>*
</span><span>52</span> <span>         * 前进到下一个元素
</span><span>53</span> <span>         * @return void 任何返回值将被忽略。
</span><span>54</span>          <span>*/</span>
<span>55</span>         <span>public</span> <span>function</span> <span>next</span><span>(){
</span><span>56</span>             <span>var_dump</span>(<span>__METHOD__</span><span>);
</span><span>57</span>             ++ <span>$this</span>-><span>position;
</span><span>58</span> <span>        }
</span><span>59</span> <span>    }
</span><span>60</span> 
<span>61</span> <span>$array</span>=<span>[
</span><span>62</span>         "firstelement",
<span>63</span>         "secondeleent",
<span>64</span>         "lastelement"
<span>65</span> <span>    ];
</span><span>66</span> 
<span>67</span> <span>$it</span> = <span>new</span> myIterator(<span>$array</span><span>);
</span><span>68</span> <span>foreach</span> (<span>$it</span> <span>as</span> <span>$key</span>=><span>$value</span><span>) {
</span><span>69</span>     <span>echo</span> <span>$key</span>.' => '.<span>$value</span><span>;
</span><span>70</span>     <span>echo</span> "<br>"<span>;
</span><span>71</span> } 
登录后复制

 

执行结果:

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!