浅谈PHP设计模式的迭代器模式

yizhihongxing

简介:

迭代器模式,是行为型的设计模式。
提供一中方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。

适用场景:

除了学习,在PHP中几乎没有应用场景。

优点:

学习意义远大于实际意义。

缺点:

实际开发中几乎用不上,完全可以被更简单的foreach,或者是所用框架内置的遍历方案替代。

代码:

//声明一个迭代器类,并实现内置的迭代器接口
class MyIterator implements \Iterator {
    private $data;
    private $index;


    //初始化数据
    public function __construct($data) {
        $this->data = $data;
        $this->index = 0;
    }


    //获取当前数据
    public function current() {
        return $this->data[$this->index] ?? null;
    }


    //移动指针
    public function next() {
        ++ $this->index;
    }


    //获取当前位置
    public function key() {
        return $this->index;
    }


    //通过数量判断指针的位置是否合法
    public function valid() {
        return $this->index < count($this->data);
    }


    //重置指针到开始位置
    public function rewind() {
        $this->data = 0;
    }
}

//调用端================================================================
//是可以通过一些PHP数组的方式去迭代关联数组,不过确实永不上
$my_iterator = new MyIterator(['one', 'two', 'three', 'four', 'five']);
while($my_iterator->valid()) {
    echo $my_iterator->current() . PHP_EOL;
    $my_iterator->next();
}
$my_iterator->rewind();

原文链接:https://www.cnblogs.com/phpphp/p/16875731.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈PHP设计模式的迭代器模式 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • 如何对PHP程序中的常见漏洞进行攻击(上)

    对于网站开发中的常见漏洞,黑客或攻击者可以尝试通过漏洞实现攻击,从而获取敏感信息,篡改数据,甚至控制整个网站。其中 PHP 作为一种常见的服务端脚本语言,也有相应的常见漏洞类型。下面,本文将简要介绍如何对 PHP 程序中的常见漏洞进行攻击。 1. SQL 注入漏洞 SQL 注入漏洞是指攻击者可以通过修改 SQL 语句的方式,实现非法获取、修改、删除等操作。攻…

    PHP 2023年5月30日
    00
  • Python udp网络程序实现发送、接收数据功能示例

    下面我将为您详细讲解“Python UDP网络程序实现发送、接收数据功能示例”的完整攻略,包括编写代码、运行程序等步骤。 网络编程基础知识 在进行Python UDP网络程序编写之前,我们需要了解一些网络编程基础知识,如Socket、IP地址、端口、数据传输等。 Socket:Socket是个通信端点,它是IP地址和端口的组合,用于标识网络中的一个进程。 I…

    PHP 2023年5月30日
    00
  • PHP中使用substr()截取字符串出现中文乱码问题该怎么办

    在PHP中,使用 substr() 函数截取字符串时,如果该字符串中包含了中文字符,常常会出现截取后出现中文乱码的问题。以下是一些解决中文乱码问题的方法: 方法一:使用mb_substr函数 mb_substr() 函数是一个多字节字符串截取函数,它可以正确地处理中文字符,因此在使用 substr() 函数截取中文字符串时,可以考虑使用 mb_substr(…

    PHP 2023年5月26日
    00
  • php中url函数介绍及使用示例

    下面是详细的“php中url函数介绍及使用示例”的攻略。 PHP中的URL函数介绍及使用示例 什么是URL? 在计算机领域中,URL(Uniform Resource Locator,统一资源定位器)用于定位万维网上的资源。简单来说,URL就是一个用于定位网络上资源的地址。 在Web应用程序中,URL是指特定页面或资源的网址。例如,这里的https://ww…

    PHP 2023年5月23日
    00
  • 选择MySQL数据库的命令以及PHP脚本下的操作方法

    选择MySQL数据库的命令: 在MySQL终端或者其他MySQL命令行工具中,可以使用USE命令选择想要使用的数据库。这个命令需要跟随想要使用的数据库名称。 USE <database_name>; 例如,如果我想使用一个名为mydatabase的数据库,那么这个命令看上去应该像这样: USE mydatabase; 这个命令执行后,终端显示将切…

    PHP 2023年5月26日
    00
  • PHP 输出简单动态WAP页面

    下面是 PHP 输出简单动态 WAP 页面的完整攻略: 步骤一:建立 HTML 基础模板 首先,我们需要建立一个干净简单的 HTML 基础模板。这个模板我们需要包含以下基本内容: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &lt…

    PHP 2023年5月23日
    00
  • PHP stripos()函数及注意事项的分析

    PHP stripos()函数及注意事项的分析 介绍 在 PHP 中,stripos() 是一种字符串函数,其用于在一个字符串中查找另一个字符串的位置,不区分大小写。 语法 stripos(string $haystack, mixed $needle, int $offset = 0) : int|false string $haystack:要在其中查找…

    PHP 2023年5月26日
    00
  • PHP中使用CURL发送get/post请求上传图片批处理功能

    当你需要在PHP中使用CURL来上传图片或执行批处理操作时,以下是一个完整攻略: 1. 获取CURL资源 在使用CURL发送请求之前,我们需要先获取CURL资源。以下是获取CURL资源的示例代码: $ch = curl_init(); 2. 设置CURL选项 接下来,我们需要设置CURL选项。以下是设置CURL选项的示例代码: curl_setopt($ch…

    PHP 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部