hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Lập trình PHP cơ bản
Iterable và iterator trong PHP

Iterable và iterator trong PHP

  • 15-03-2023
  • Toanngo92
  • 0 Comments

Một iterable trong PHP là một loại tham số có thể được lặp với một vòng lặp foreach. iterable có thể được sử dụng làm kiểu dữ liệu cho đối số hàm và cũng như giá trị trả về của hàm.

Ví dụ sử dụng iterable làm tham số:

<html>
<body>
    <?php
    function displayIterable(iterable $testIterable)
    {
        foreach ($testIterable as $item) {
            echo $item;
        }
    }
    $arrl = ["1", "2", "3"];
    displayIterable($arrl);
    ?>
</body>

</html>

Ví dụ sử dụng iterable khi return:

<html>
<body>
<?php
    function getIterable(): iterable
    {
        return ["x", "y", "z"];
    }
    $testIterable = getIterable();

    foreach ($testIterable as $alpha) {
        echo $alpha;
    }
?>
</body>

</html>

Tất cả các mảng là iterables. Do đó, bất kỳ mảng nào cũng có thể được sử dụng làm đối số của một phương thức. Tuy nhiên, nó yêu cầu một iterable.

PHP chứa một interface được gọi là iterator, interface này có thể được sử dụng làm đối số của hàm yêu cầu iterable.

iterator chứa danh sách các mục và cung cấp các hàm để lặp qua. Nó cũng chứa một con trỏ tới một trong các phần tử trong danh sách. Mỗi mục trong danh sách phải có một khóa để có thể định vị mục đó.

Một số phương thức của iterator:

current()Nó trả về Phần tử mà con trỏ hiện đang trỏ tới. Nó có thể là bất kỳ kiểu dữ liệu nào
key()Nó trả về khóa được liên kết với phần tử hiện tại trong danh sách. Kiểu dữ liệu của khóa chỉ có thể là integer, float, Boolean hoặc string.
next()Nó di chuyển con trỏ đến phần tử tiếp theo trong danh sách.
rewind()Nó di chuyển con trỏ đến đầu (phần tử đầu tiên) của danh sách.
valid()Nếu con trỏ bên trong được thao tác để trỏ đến một phần tử không hợp lệ của danh sách (ví dụ: nếu next() được gọi ở cuối danh sách, thì hàm này sẽ trả về false. Trong bất kỳ trường hợp nào khác, nó trả về true.

Ví dụ:

<?php 
class TestIterator implements Iterator{
    private $alpha = [];
    private $pointer = 0;
    public function __construct($arr){
        $this->alpha = array_values($arr);
    }
    // comment in php 8.1
    #[\ReturnTypeWillChange]
    public function rewind(){
        $this->pointer = 0;
    }
    #[\ReturnTypeWillChange]
    public function current(){
        return $this->alpha[$this->pointer];
    }
    #[\ReturnTypeWillChange]
    public function key(){
        return $this->index;
    }
    #[\ReturnTypeWillChange]
    public function next(){
        $this->pointer++;
    }
    #[\ReturnTypeWillChange]
    public function valid(){
        return $this->pointer < count($this->alpha);
    }
    public function duyet(){
        foreach($this->alpha as $key => $value){
            echo $value;
        }
    }
}

function printIter(iterable $arr){
    $arr->duyet();
}


$myarr = new TestIterator(['a','b','c']);
// printIter($myarr);
echo $myarr->current();
$myarr->next();
echo $myarr->current();
$myarr->next();
echo $myarr->current();
$myarr->rewind();
echo $myarr->current();
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

Bài viết liên quan:

Hướng dẫn sử dụng xdebug để gỡ lỗi PHP bằng visual studio code môi trường windows
Hướng dẫn cấu hình Extension live server tự động tải lại PHP khi cập nhật file trên visual studio code
Kỹ thuật AJAX trong PHP
Làm việc với JSON trong PHP
Chuyển hướng trình duyệt, download file bằng HTTP Header trong PHP
Một số cải tiến mới của PHP 8
Nhận dạng trình duyệt và nền tảng trong PHP
Từ khóa final, static, overloading và magic method trong PHP
Abstract Class (lớp trừu tượng) trong PHP
Interface trong hướng đối tượng PHP
Method (phương thức), public,private,protected, method overriding trong hướng đối tượng PHP
Namespace trong hướng đối tượng PHP

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

Các khái niệm nâng cao trong C#

Kiểu dữ liệu Generics và Iterators trong C# 

Các lớp trừu tượng và Giao diện

Kế thừa và Đa hình

Tìm Hiểu Ràng Buộc UNIQUE Trong MySQL

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×