Giới thiệu
Các hàm ẩn danh (còn gọi là lambda) trả về đối tượng của Closure lớp. Lớp này có một số phương thức bổ sung cung cấp khả năng kiểm soát nhiều hơn đối với các chức năng ẩn danh.
Cú pháp
Closure { /* Methods */ private __construct ( void ) public static bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] ) : Closure public bindTo ( object $newthis [, mixed $newscope = "static" ] ) : Closure public call ( object $newthis [, mixed $... ] ) : mixed public static fromCallable ( callable $callable ) : Closure }
Phương pháp
Đóng cửa riêng tư ::__ construct (void) - Phương thức này chỉ tồn tại để không cho phép khởi tạo lớp Closure. Các đối tượng của lớp này được tạo bởi hàm ẩn danh.
Đóng cửa tĩnh công khai ::bind (Đóng cửa $ đóng, đối tượng $ newthis [, hỗn hợp $ newscope ="static"]) - Đóng cửa - Nhân bản một bao đóng với một đối tượng bị ràng buộc cụ thể và phạm vi lớp. Phương thức này là phiên bản tĩnh của Closure ::bindTo ().
Công khai đóng cửa ::bindTo (object $ newthis [, mix $ newscope ="static"]) - Đóng cửa - Nhân đôi bao đóng với một đối tượng bị ràng buộc và phạm vi lớp mới. Tạo và trả về một hàm ẩn danh mới có cùng nội dung và các biến liên kết, nhưng với một đối tượng khác và một phạm vi lớp mới.
public Closure ::call (object $ newthis [, mix $ ...]) - hỗn hợp - Tạm thời liên kết việc đóng với newthis và gọi nó với bất kỳ tham số nhất định nào.
Ví dụ về việc đóng cửa
<?php class A { public $nm; function __construct($x){ $this->nm=$x; } } // Using call method $hello = function() { return "Hello " . $this->nm; }; echo $hello->call(new A("Amar")). "\n";; // using bind method $sayhello = $hello->bindTo(new A("Amar"),'A'); echo $sayhello(); ?>
Đầu ra
Chương trình trên hiển thị kết quả sau
Hello Amar Hello Amar