Share Sử dụng phương thức call của closure trong PHP 7

filiallion

Administrator
Staff member
Administrator
Messages
585
Points
10
Language
Tiếng Việt
Trong PHP 5.6 chắc các bạn đã biết đến phương thức bindTo của closure. Đây là phương thức thực hiện nhiệm vụ gọi và gán đối tượng của một lớp vào chính hàm closure hay nói cách khác hàm closure được xem như một phương thức của lớp được gán.

Để dễ hình dung, các bạn có thể tham khảo ví dụ sau được viết trong PHP 5.6:
PHP:
<?php
//Định nghĩa lớp User
class User
{
    private $username = 'admin';
}

//Định nghĩa một hàm closure
$getUsername = function() {
    return $this->username;
};

//Gán đối tượng của lớp User vào hàm closure
$username = $getUsername->bindTo(new User(), 'User');

//Xem kết quả
echo $username();
Nhưng trong PHP 7 thì các bạn nên sử dụng phương thức call của closure như ví dụ sau:
PHP:
<?php
//Định nghĩa lớp User
class User
{
    private $username = 'admin';
}

//Định nghĩa một hàm closure
$getUsername = function() {
    return $this->username;
};

//Xem kết quả
echo $getUsername->call(new User());
Với ví dụ trên, các bạn sẽ thấy sử dụng phương thức call của closure trong PHP 7 sẽ gọn hơn và tất nhiên sẽ nhanh hơn so với việc sử dụng phương thức bindTo như các phiên bản trước PHP 7.
 
Back
Top