首頁 後端開發 php教程 24php中使用Iterator,ArrayAccess和Countable

24php中使用Iterator,ArrayAccess和Countable

Jul 29, 2016 am 09:01 AM
function public quot this

    迭代器往往被我們用來在資料庫中讀取大量的資料時方便資料的管理。

<?php
class Basket implements Iterator{
    private $fruits = array(&#39;apple&#39;, &#39;banna&#39;, &#39;pear&#39;, &#39;orange&#39;, &#39;watermelon&#39;);
    private $position = 0; 
    
    //返回当前的元素
    public function current(){
        return $this->fruits[$this->position];
    }
    //返回当前的键
    public function key(){
        return $this->position
    }
    //下移一个元素
    public function next(){
        ++$this->position;
    }
    
    //移动到第一个元素
    public function rewind(){
        $this->position = 0;
    }
    //判断后续是否还有元素
    public function valid(){
        return isset($this->fruits[$this->position+1]);
    }
    
}

登入後複製

    讓物件中的資料可以像陣列一樣存取

<?php
class obj implements ArrayAccess{
    private $container = array();

    public function __construct(){
        $this->container = array(
            "one" => 1,
            "two" => 2,
            "three" => 3
            
        );
    }
    
    //赋值
    public function offsetSet($offset, $value){
        if(is_null($offset)){
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }
    
    //某键是否存在
    public function offsetExists($offset){
        return isset($this->container[$offset]);
    }
    
    //删除键值
    public function offsetUnset($offset){
        unset($this->container[$offset]);
    }
    
    //获取键对应的值
    public function offsetGet($offset){
        return isset($this->container[$offset])?$this->container[$offset]:null;
    }
}

$obj = new obj();
var_dump(isset($obj["two"]));
var_dump($obj["two"]);
unset($obj["two"]);
var_dump(isset($obj["two"]));
$obj['two'] = "A value";

var_dump($obj['two']);
echo $obj['two'];
$obj[] = 'Append 1';
$obj[] = 'Append 2';
$obj[] = 'Append 3';
var_dump($obj);
登入後複製

   

以上就介紹了24php中使用Iterator,ArrayAccess和Countable,包含了方面的內容,希望對PHP教程有興趣的朋友有所幫助。


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

function是什麼意思 function是什麼意思 Aug 04, 2023 am 10:33 AM

function是函數的意思,是一段具有特定功能的可重複使用的程式碼區塊,是程式的基本組成單元之一,可以接受輸入參數,執行特定的操作,並傳回結果,其目的是封裝一段可重複使用的程式碼,提高程式碼的可重複使用性和可維護性。

iOS的developer版和public版有什麼不同? iOS的developer版和public版有什麼不同? Mar 01, 2024 pm 12:55 PM

每年Apple發布新的iOS和macOS大版本之前,用戶都可以提前幾個月下載測試版搶先體驗一番。由於大眾和開發人員都使用該軟體,蘋果公司為兩者推出了developer和public版即開發者測試版的公共測試版。 iOS的developer版和public版有什麼差別呢?從字面上的意思來說,developer版是開發者測試版,public版是公共測試版。 developer版和public版面向的物件不同。 developer版是蘋果公司給開發者測試使用的,需要蘋果開發者帳號才能收到下載併升級,是

'enumerate()'函數在Python中的用途是什麼? 'enumerate()'函數在Python中的用途是什麼? Sep 01, 2023 am 11:29 AM

在本文中,我們將了解enumerate()函數以及Python中「enumerate()」函數的用途。什麼是enumerate()函數? Python的enumerate()函數接受資料集合作為參數並傳回一個枚舉物件。枚舉物件以鍵值對的形式傳回。 key是每個item對應的索引,value是items。語法enumerate(iterable,start)參數iterable-傳入的資料集合可以作為枚舉物件傳回,稱為iterablestart-顧名思義,枚舉物件的起始索引由start定義。如果我們忽

MySQL.proc表的作用與功能詳解 MySQL.proc表的作用與功能詳解 Mar 16, 2024 am 09:03 AM

MySQL.proc表的功能與功能詳解MySQL是一種流行的關係型資料庫管理系統,開發者在使用MySQL時常常會涉及到預存程序(StoredProcedure)的建立與管理。而MySQL.proc表則是一個非常重要的系統表,它儲存了資料庫中所有的預存程序的相關信息,包括預存程序的名稱、定義、參數等。在本文中,我們將詳細解釋MySQL.proc表的作用與功能

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

一篇搞懂this指向,追趕70%的前端人 一篇搞懂this指向,追趕70%的前端人 Sep 06, 2022 pm 05:03 PM

同事因為this指向的問題卡住的bug,vue2的this指向問題,使用了箭頭函數,導致拿不到對應的props。當我跟他介紹的時候他竟然不知道,隨後也刻意的看了一下前端交流群,至今最起碼還有70%以上的前端程式設計師搞不明白,今天給大家分享一下this指向,如果啥都沒學會,請給我一個大嘴巴子。

Vue.use函數的用法與作用 Vue.use函數的用法與作用 Jul 24, 2023 pm 06:09 PM

Vue.use函數的用法和作用Vue是一款流行的前端框架,它提供了許多有用的功能和功能。其中之一就是Vue.use函數,它可以讓我們在Vue應用中使用插件。本文將介紹Vue.use函數的用法和作用,並且提供一些程式碼範例。 Vue.use函數的基本用法非常簡單,只需在Vue實例化之前呼叫它,並傳入要使用的插件作為參數。以下是一個簡單的範例://引入並使用插件

聊聊Vue2為什麼能透過this存取各種選項中屬性 聊聊Vue2為什麼能透過this存取各種選項中屬性 Dec 08, 2022 pm 08:22 PM

這篇文章帶大家解讀vue原始碼,來介紹一下Vue2中為什麼可以使用 this 存取各種選項中的屬性,希望對大家有幫助!

See all articles