Computer >> Máy Tính >  >> Lập trình >> PHP

Lớp đóng cửa PHP

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