pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

  1. <small id='iVSJc'></small><noframes id='iVSJc'>

    • <bdo id='iVSJc'></bdo><ul id='iVSJc'></ul>
    <i id='iVSJc'><tr id='iVSJc'><dt id='iVSJc'><q id='iVSJc'><span id='iVSJc'><b id='iVSJc'><form id='iVSJc'><ins id='iVSJc'></ins><ul id='iVSJc'></ul><sub id='iVSJc'></sub></form><legend id='iVSJc'></legend><bdo id='iVSJc'><pre id='iVSJc'><center id='iVSJc'></center></pre></bdo></b><th id='iVSJc'></th></span></q></dt></tr></i><div class="hrdrztn" id='iVSJc'><tfoot id='iVSJc'></tfoot><dl id='iVSJc'><fieldset id='iVSJc'></fieldset></dl></div>

      <legend id='iVSJc'><style id='iVSJc'><dir id='iVSJc'><q id='iVSJc'></q></dir></style></legend>
    1. <tfoot id='iVSJc'></tfoot>

      將實現 Iterator 的 PHP 類視為數組

      Treat a PHP class that implements Iterator as an array(將實現 Iterator 的 PHP 類視為數組)

        <i id='HFkcF'><tr id='HFkcF'><dt id='HFkcF'><q id='HFkcF'><span id='HFkcF'><b id='HFkcF'><form id='HFkcF'><ins id='HFkcF'></ins><ul id='HFkcF'></ul><sub id='HFkcF'></sub></form><legend id='HFkcF'></legend><bdo id='HFkcF'><pre id='HFkcF'><center id='HFkcF'></center></pre></bdo></b><th id='HFkcF'></th></span></q></dt></tr></i><div class="rll9j7z" id='HFkcF'><tfoot id='HFkcF'></tfoot><dl id='HFkcF'><fieldset id='HFkcF'></fieldset></dl></div>

            <tbody id='HFkcF'></tbody>
          <legend id='HFkcF'><style id='HFkcF'><dir id='HFkcF'><q id='HFkcF'></q></dir></style></legend>
              <bdo id='HFkcF'></bdo><ul id='HFkcF'></ul>

              <small id='HFkcF'></small><noframes id='HFkcF'>

              • <tfoot id='HFkcF'></tfoot>
              • 本文介紹了將實現 Iterator 的 PHP 類視為數組的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                問題描述

                如果我有一個實現 Iterator 接口的類,我可以手動控制 foreach 循環中的迭代方式.但是還有其他方法可以讓我的對象表現得像一個數組嗎?

                If I have a class that implements the Iterator interface, I can manually control how iteration in a foreach loop. But are there other ways in which I could make my object behave like an array?

                例如,假設我有一個實現 Iterator 的類 Guestbook,這樣我就可以迭代 foreach (new Guestbook() as $entry).但是,如果我想顛倒順序怎么辦?

                For instance, let's say I have a class Guestbook which implements Iterator, so that I can iterate foreach (new Guestbook() as $entry). But what if I want to, say, reverse the order?

                foreach (array_reverse(new Guestbook()) as $entry) 肯定不行,因為 array_reverse 只接受一個數組.

                foreach (array_reverse(new Guestbook()) as $entry) definitely won't work, because array_reverse will only accept an array.

                我想我想問的是,我可以將 Iterator 用于更多的 foreach 循環嗎?

                I guess what I'm asking is, can I use Iterator for more than just foreach loops?

                謝謝.

                推薦答案

                迭代器接口的目的 是為了讓你的對象在 foreach 循環中使用,它不是為了讓你的對象像一個數組.如果您想要一些像數組一樣的東西,請使用數組.

                The purpose of the Iterator interface is to allow your object to be used in a foreach loop, it is not intended to make your object act like an array. If you want something that acts like an array, use an array.

                您始終可以使用iterator_to_array 函數將您的對象轉換為數組,但您無法逆轉該過程.

                You can always turn your object into an array by using the iterator_to_array function, but you can't reverse that process.

                如果您認為需要反轉可迭代對象中元素的順序,那么您可以創建一個 reverse() 方法,該方法可能在內部使用 array_reverse().像這樣:-

                If you see the need for reversing the order of the elements in your iterable object, then you could create a reverse() method that, possibly, uses array_reverse() internally. Something like this:-

                class Test implements Iterator
                {
                    private $testing = [0,1,2,3,4,5,6,7,8,9,10];
                    private $index = 0;
                
                    public function current()
                    {
                        return $this->testing[$this->index];
                    }
                
                    public function next()
                    {
                        $this->index ++;
                    }
                
                    public function key()
                    {
                        return $this->index;
                    }
                
                    public function valid()
                    {
                        return isset($this->testing[$this->key()]);
                    }
                
                    public function rewind()
                    {
                        $this->index = 0;
                    }
                
                    public function reverse()
                    {
                        $this->testing = array_reverse($this->testing);
                        $this->rewind();
                    }
                }
                
                $tests = new Test();
                var_dump(iterator_to_array($tests));
                $tests->reverse();
                var_dump(iterator_to_array($tests));
                

                輸出:-

                array (size=11)
                  0 => int 0
                  1 => int 1
                  2 => int 2
                  3 => int 3
                  4 => int 4
                  5 => int 5
                  6 => int 6
                  7 => int 7
                  8 => int 8
                  9 => int 9
                  10 => int 10
                
                array (size=11)
                  0 => int 10
                  1 => int 9
                  2 => int 8
                  3 => int 7
                  4 => int 6
                  5 => int 5
                  6 => int 4
                  7 => int 3
                  8 => int 2
                  9 => int 1
                  10 => int 0
                

                我寫了代碼是為了在發布之前向自己證明它可以工作,并認為我不妨把它扔到答案中.

                I wrote the code to prove to myself that it would work before posting and thought I might as well throw it into the answer.

                這篇關于將實現 Iterator 的 PHP 類視為數組的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                相關文檔推薦

                MySQLi prepared statement amp; foreach loop(MySQLi準備好的語句amp;foreach 循環)
                Is mysqli_insert_id() gets record from whole server or from same user?(mysqli_insert_id() 是從整個服務器還是從同一用戶獲取記錄?)
                PHP MySQLi doesn#39;t recognize login info(PHP MySQLi 無法識別登錄信息)
                mysqli_select_db() expects exactly 2 parameters(mysqli_select_db() 需要 2 個參數)
                Php mysql pdo query: fill up variable with query result(Php mysql pdo 查詢:用查詢結果填充變量)
                MySQLI 28000/1045 Access denied for user #39;root#39;@#39;localhost#39;(MySQLI 28000/1045 用戶“root@“localhost的訪問被拒絕)
                <legend id='ZNhQ5'><style id='ZNhQ5'><dir id='ZNhQ5'><q id='ZNhQ5'></q></dir></style></legend>

                • <i id='ZNhQ5'><tr id='ZNhQ5'><dt id='ZNhQ5'><q id='ZNhQ5'><span id='ZNhQ5'><b id='ZNhQ5'><form id='ZNhQ5'><ins id='ZNhQ5'></ins><ul id='ZNhQ5'></ul><sub id='ZNhQ5'></sub></form><legend id='ZNhQ5'></legend><bdo id='ZNhQ5'><pre id='ZNhQ5'><center id='ZNhQ5'></center></pre></bdo></b><th id='ZNhQ5'></th></span></q></dt></tr></i><div class="rbrrhv1" id='ZNhQ5'><tfoot id='ZNhQ5'></tfoot><dl id='ZNhQ5'><fieldset id='ZNhQ5'></fieldset></dl></div>
                  <tfoot id='ZNhQ5'></tfoot>

                  <small id='ZNhQ5'></small><noframes id='ZNhQ5'>

                    <bdo id='ZNhQ5'></bdo><ul id='ZNhQ5'></ul>

                            <tbody id='ZNhQ5'></tbody>
                        1. 主站蜘蛛池模板: 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | RV减速机-蜗轮蜗杆减速机-洗车机减速机-减速机厂家-艾思捷 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | NM-02立式吸污机_ZHCS-02软轴刷_二合一吸刷软轴刷-厦门地坤科技有限公司 | 阿米巴企业经营-阿米巴咨询管理-阿米巴企业培训-广东键锋企业管理咨询有限公司 | 通风气楼_通风天窗_屋顶风机-山东美创通风设备有限公司 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 | 精密模具加工制造 - 富东懿| 步进电机_agv电机_伺服马达-伺服轮毂电机-和利时电机 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 上海三信|ph计|酸度计|电导率仪-艾科仪器 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 铣床|万能铣床|立式铣床|数控铣床|山东滕州万友机床有限公司 | 空气净化器租赁,空气净化器出租,全国直租_奥司汀净化器租赁 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 氟塑料磁力泵-不锈钢离心泵-耐腐蚀化工泵厂家「皖金泵阀」 | 打孔器,打孔钳厂家【温州新星德牌五金工具】 | 安徽合肥格力空调专卖店_格力中央空调_格力空调总经销公司代理-皖格制冷设备 | 转向助力泵/水泵/发电机皮带轮生产厂家-锦州华一精工有限公司 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | 橡胶接头|可曲挠橡胶接头|橡胶软接头安装使用教程-上海松夏官方网站 | 皮带输送机-大倾角皮带输送机-皮带输送机厂家-河南坤威机械 | 混合气体腐蚀试验箱_盐雾/硫化氢/气体腐蚀试验箱厂家-北京中科博达 | 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 撕碎机_轮胎破碎机_粉碎机_回收生产线厂家_东莞华达机械有限公司 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 食药成分检测_调料配方还原_洗涤剂化学成分分析_饲料_百检信息科技有限公司 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 自清洗过滤器,浅层砂过滤器,叠片过滤器厂家-新乡市宇清净化 | 加盟店-品牌招商加盟-创业项目商机平台 | 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 |