ホームページ  >  記事  >  バックエンド開発  >  phpイテレータそれは何を意味しますか

phpイテレータそれは何を意味しますか

藏色散人
藏色散人オリジナル
2021-10-15 10:37:051883ブラウズ

php イテレータは PHP デザイン パターンであり、独自の外部イテレータまたはクラスを内部で反復処理できるインターフェイスを指します。イテレータ パターンは、内部実装を知らなくても集約オブジェクトを走査できます。

phpイテレータそれは何を意味しますか

この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

php イテレータの意味?

PHP イテレータ モード

Iterator: PHP の Iterator インターフェイスを継承し、バッチで動作するクラスです。

1. イテレーター モードは、内部実装を認識せずに、集合オブジェクトの内部要素を走査します。

2. 従来のプログラミング パターンと比較して、反復子パターンは要素を走査するために必要な操作を隠すことができます。

InterfaceIterator

current() 現在の要素を返します

key() 現在の要素のキーを返します

next() 次の要素に進みますelement

rewind() はイテレータの最初の要素を返します

class AllUser implements \Iterator
{
    protected $index = 0;
    protected $data = [];
    public function __construct()
    {
        $link = mysqli_connect('192.168.0.91', 'root', '123', 'xxx');
        $rec = mysqli_query($link, 'select id from doc_admin');
        $this->data = mysqli_fetch_all($rec, MYSQLI_ASSOC);
    }
    //1 重置迭代器
    public function rewind()
    {
        $this->index = 0;
    }
xxx
    //2 验证迭代器是否有数据
    public function valid()
    {
        return $this->index < count($this->data);
    }
    //3 获取当前内容
    public function current()
    {
        $id = $this->data[$this->index];
        return User::find($id);
    }
    //4 移动key到下一个
    public function next()
    {
        return $this->index++;
    }
    //5 迭代器位置key
    public function key()
    {
        return $this->index;
    }
}
//实现迭代遍历用户表
$users = new AllUser();
//可实时修改
foreach ($users as $user){
    $user->add_time = time();
    $user->save();
}

Iterator インターフェイス: https://www.php.net/manual/zh/class .iterator.php

推奨学習: 「PHP ビデオ チュートリアル

以上がphpイテレータそれは何を意味しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。