Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Iterator

Iterator về bản chất là một interface chuẩn được xây dựng sẵn trong PHP để bạn giễ dàng thao tác với các bộ giá trị. Cấu trúc của interface iterator trong PHP mặc định khai báo một số phương thức như sau:

interface Iterator{
  function rewind();
  function current();
  function key();
  function next();
  function valid();
}

Vậy nên lớp nào sử dụng interface interator đều phải định nghĩa các phương thức trên. Chúng ta sẽ cùng xem xét một ví dụ về việc sử dụng interator để duyệt mảng trả về từ CSDL.

class QueryInterator implements Iterator{
    private $result;
    private $connection;
    private $key=0;
    private $valid;
    private $data;
   
    function __construct($host, $user, $password, $dbname){
        $this->connection = mysql_connect($host,$user, $password);
        mysql_selectdb($dbname,$this->connection);
    }
   
    public function exceute($query){
        $this->result = mysql_query($query,$this->connection);
        if(mysql_num_rows($this->result) > 0){
            $this->next();
        }
    }
   
    public function current(){
        return $this->data;
    }
    public function rewind(){}
    public function key(){
        return $this->key;
    }
   
    public function next(){
        if($this->data = mysql_fetch_assoc($this->result)){
            $this->valid = true;
            $this->key +=1;
        }else{
            $this->valid = false;
        }
    }
   
    public function valid(){
        return $this->valid;
    }
}
$q = new QueryInterator("localhost","root","","test");
$q->exceute("SELECT name FROM ex1");
echo '
';
while($q->valid()){
    print_r($q->current());
    $q->next();
}
echo '
';

ArrayIterator

ArrayIterator về bản chất nó là đối tượng được xây dựng sẵn trong thư viện PHP chuẩn và lớp này sử dụng iterface iterator.

Trong bài viết trước có đề cập đến ArrayObject cũng là đối tượng được xây dựng sẵn trong thư viện PHP chuẩn và nó có phương thức __construct() như sau:

__construct ($array, $flags=0, $iterator_class="ArrayIterator")

Chúng ta thấy đối số thứ 3 mặc định đã được khởi tạo là "ArrayIterator" để đối tượng dạng mảng có thể sử dụng đối tượng ArrayIterator thông qua phương thức getIterator(). ArrayItertor định nghĩa cho chúng ta bộ phương thức theo đúng interface iterator để thao tác với mảng. Bạn có thể xem ví dụ ở bài trước về ArrayObject với phương thức getIterator().
ArrayItertor định nghĩa cho chúng ta bộ phương thức theo đúng interface iterator để thao tác với mảng. Bạn có thể xem ví dụ ở bài trước về ArrayObject với phương thức getIterator().

Tham khảo "object-oriented programming with PHP5 _ Hasin Hayder".

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn dùng brake.migration trong PHP

Xin chào nhị vị huynh đệ! Trong bài viết này mình xin giới thiệu đến các bạn 1 tính năng khá quan trọng trong Laravel, đó chính là Migration. Để xây dựng một ...

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn dùng html decoding trong PHP

Hàm html_entity_decode() sẽ chuyển đổi các kí hiệu HTML entities thành các kí tự tương ứng.Bài viết này được đăng tại freetuts.net, không được copy ...

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn dùng tan degrees trong PHP

- Dưới đây là danh sách các hàm toán học được xây dựng sẵn trong PHP. sin() - Trả về sin của một số. sinh() - Trả về sin hyperbolic của một số. cos() - Trả ...

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn doubleval php - doubleval php

Thay đổi ngôn ngữ:Gửi báo cáo yêu cầu kéo một lỗi(Php 4, Php 5, Php 7, Php 8)DoubleVal - Bí danh của floatval () — Alias of floatval()Sự mô tả Hàm này là một bí danh ...

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn dùng jfy meaning trong PHP

(PHP 4, PHP 5, PHP 7, PHP 8)date — Format a Unix timestampDescriptiondate(string $format, ?int $timestamp = null): stringParameters format Format accepted by DateTimeInterface::format(). ...

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php

Hướng dẫn php filesystem iterator - trình lặp hệ thống tệp php