Web888.vn
  • Khám phá
  • Kiến thức công nghệ
    • Học lập trình
      • Lập trình C/C++
      • Lập trình HTML
      • Lập trình Javascript
        • ReactJS framework
        • AngularJS framework
      • Cơ sở dữ liệu
        • Micrsoft SQL Server
      • Lập trình PHP
        • Lập trình PHP cơ bản
        • Laravel Framework
    • WORDPRESS
      • WordPress cơ bản
      • WordPress nâng cao
      • Chia sẻ WordPress
    • Machine Learning
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
  • Kinh doanh online – MMO
    • Tiếp thị liên kết
    • Drop shipping
    • Google Adsense
    • Kiếm tiền youtube
    • Tiền điện tử
    • Thương mại điện tử
  • Chia sẻ IT
    • 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
  • Kỹ năng sống
Đă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);
    }
    public function rewind(){
        $this->pointer = 0;
    }
    public function current(){
        return $this->alpha[$this->pointer];
    }
    public function key(){
        return $this->index;
    }
    public function next(){
        $this->pointer++;
    }
    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:

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
Khái niệm trait (đặc điểm) trong hướng đối tượng PHP
Khái niệm hướng đối tượng, Class, Object trong 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

FUNCTION (hàm) trong SQL Server

Vòng lặp và kiểm soát luồng chương trình trong PHP

Biểu thức chính quy (Regular Expression) trong PHP

Biến (Variable) trong PHP

Các kiểu dữ liệu trong PHP

Giới thiệu

web888.vn là chuyên trang 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 web888

© web888.vn - 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 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.

Your personal data will be used to support your experience throughout this website, to manage access to your account, and for other purposes described in our privacy policy.

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
×