Hàm lambda php

Nếu như các bạn đã từng làm việc với Laravel thì chắc chắn khái niệm này đã không còn là quá xa lạ, khái niệm này trong jquery cũng được sử dụng rất nhiều. khái niệm mình đang nói đến chính là closure, lambda và bài này mình sẽ giới thiệu đến mọi người về nó trong PHP

Chú thích. Bài này không nằm trong sê-ri hướng đối tượng, nhưng nó là phần nâng cao nên mình cho vào danh mục này

1, Lamda

Lambda là gì?

- Lambda là một hàm ẩn danh (hàm ẩn danh), nó có thể khai báo,định nghĩa ở bất kỳ đâu và không có khả năng tái sử dụng

- Lambda chỉ tồn tại trong phạm vi của biến mà nó được định nghĩa, vì vậy nếu như biến đó vượt ra ngoài vi thì hàm này cũng không còn tác dụng nữa

- Lambda thường được dùng để gán vào biến, hoặc được gán vào hàm,lớp dưới dạng tham số

Khai báo lambda

- Để khai báo lambda trong PHP chúng ta sử dụng cú pháp

function (argument)
{
    //code
}

Hoặc có thể sử dụng hàm

create_function('', argument);
1 trong PHP

create_function('', argument);

in which. Trong đối số đó là các tham số bạn muốn truyền vào tham số ẩn danh

VD1. Khai báo hàm ẩn có tác dụng trong chuỗi 'Học lập trình toidicode trực tuyến. com'

function ()
{
    return 'Học lập trình online toidicode.com';
}

Sử dụng lambda

-Như ở trên mình có nói là lambda thường được gán vào biến, hoặc gán vào hàm, lớp như một tham số. Giờ mình sẽ làm các ví dụ chứng minh cho điều đó

VD2. Sử dụng hàm ẩn danh vào biến

Chú ý . Nếu gán hàm ẩn danh, bạn phải chú ý dấu

create_function('', argument);
2 phía sau định nghĩa hàm ẩn danh.

VD3. Sử dụng ẩn danh hàm như một tham số trong hàm

VD4. Sử dụng hàm ẩn danh như một tham số trong lớp, phương thức

role = $role;
    }

    function getRole($role)
    {
        return $role();
    }
}

//khởi tạo class Role
$role = new Role(function () {
    return 'Học lập trình PHP Toidicode.com';
});
//gán data bằng thuộc tính role
$data = $role->role;
//hiển thị role
echo $data();
//Kết quả: Học lập trình PHP Toidicode.com
//gọi getRole
echo $role->getRole(function () {
    return 'Học lập trình Nodejs Toidicode.com';
});
//Kêt quả: Học lập trình Nodejs Toidicode.com

Truyền tham số trong lambda

-Dương nhiên, vì lambda cũng là hàm nên phải cho truyền tham số vô rồi

VD5. Truyền tham số vào hàm ẩn danh

________số 8_______

2, Đóng cửa

Đóng cửa là gì?

-Real ra thì một closure cũng là lambda, nhưng closure có thêm chức năng là có thể sử dụng các biến bên ngoài phạm vi mà nó được tạo ra.

Khai báo đóng cửa

- Để khai báo đóng cửa trong PHP chúng ta sẽ sử dụng cú pháp

function (argument) use (scope) {
    //code
}

in which

  • đối số là các tham số bạn muốn truyền vào trong phần đóng
  • phạm vi là danh sách các biến bên ngoài bao đóng mà bạn muốn sử dụng trong bao đóng

VD6

Sử dụng đóng cửa

- Vì closure khá giống với lambda nên mình sẽ không ví dụ các phần giống nhau, mà sẽ chỉ trình bày các VD khác liên quan

VD7. Tham khảo trong Closure

VD8. Đóng cửa trong lớp

create_function('', argument);
0

3, Lời kết

-Như vậy mình đã trình bày xong cho mọi người về hàm ẩn danh lambda và closure trong PHP rồi, bạn nào muốn tìm hiểu chi tiết hơn thì có thể tham khảo link

Chúc các bạn học tốt

Đăng ký nhận tin

Chúng tôi chỉ gửi tối đa 2 lần trong 1 tháng. Tuyên bố không spam mail

Đăng ký

PHP TRUYỀN TƯỢNG

Bài trước   Bài sau

1 nhận xét 502 lượt thích

Hàm lambda php

Vũ Thành Tài

Về tác giả

Cách học tốt nhất là chia sẻ

Xem tất cả bài đăng

Bài Viết Mới

  • Hàm lambda php

    Những tính năng mới trong PHP 8. 1

    1 năm trước 7 Nhận xét

  • Hàm lambda php

    Bài 39. Bộ đệm trong Laravel 8

    2 năm trước 1 Nhận xét

  • Hàm lambda php

    PHP Swoole là gì?

    2 năm trước 0 Nhận xét

  • Hàm lambda php

    Cài đặt SSL trên local sử dụng mkcert

    2 năm trước 4 Nhận xét

1 Bình luận

Hàm lambda php

ví dụ cuối khó mà ít bình luận quá anh ơi giải thích hộ em lại dòng này $pricePerItem = constant(__CLASS__. ". GIÁ BÁN_". strtoupper($product));