PHP 7
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài 07: Anonymous Classes trong PHP7

Trước đây để khởi tạo mới một đối tượng thì bắt buộc ta phải khai báo class trước, điều này rất rõ ràng nhưng lại không đáp ứng được một số trường hợp trong thực tế, vì vậy Anonymous Classes ra đời.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Để phân biệt class thông thường và Anonymous Class thì trước tiên chúng ta tìm hiểu cú pháp class thông thường đã nhé.

1. Tạo class các phiên bản trước PHP7

Dưới đây là một ví dụ tạo và sử dụng class trong các phiên bản trước PHP7.

class Animal{
    function show($message)
    {
        echo $message;
    }
}

$animal = new Animal();
$animal->show('Đây là động vật hoang dã! - freetuts.net');

Chạy ví dụ lên sẽ xuất hiện dòng chữ "Đây là động vật hoang dã! - freetuts.net". Điều này quá bình thường rồi, nhưng bạn hãy xem ví dụ ở phần 2 dưới đây.

Bài viết này được đăng tại [free tuts .net]

2. Anonymous Classes trong PHP7

Với ví dụ ở phần 1 trên thì mình sẽ viết lại dưới dạng Anonymous Class như sau:

$animal = new class{
    function show($message)
    {
        echo $message;
    }
};

$animal->show('Đây là động vật hoang dã! - freetuts.net');

Chạy lên kết quả cũng không thay đổi gì. Như vậy để khai báo một Anonymous Class thì ta dùng cú pháp sau:

new class{
    // Danh sách methods
};

3. Một số ví dụ Anonymous Class trong PHP7

Sau đây là một số ví dụ cách sử dụng Anonymous Class rất hay mà bạn nên biết.

Sử dụng là một tham số

// Class con
class Dog{
    public $animal;
    function setAnimal($animal)
    {
        $this->animal = $animal;
    }
}

// Class con với tham số truyền vào là một Anonynous Class
$dog = new Dog();
$dog->setAnimal(new class {
    function show($message)
    {
        echo $message;
    }
});
$dog->animal->show('Đây là con cờ hó!');

Anonymous Class có kế thừa

class Animal{
    function eat($meal){
    }
}

$dog = new class extends Animal{
    function eat($meal){
        echo 'Con chó đang ăn trưa với món ' . $meal;
    }
};

$dog->eat('Sốt cà chua');

Nếu bạn đã từng tìm hiêu qua Anonymous function trong jQuery hoặc trong PHP thì sẽ thấy nó rất dễ hiều.

4. Ưu điểm và nhược điểm của Anonymous Class

Ưu điểm: Việc sử dụng Anonymous Class cũng có những ưu điểm và nhược điểm. Cá nhân mình nhận thấy khi ban khởi tạo một Anonymous Class thì tốc độ xử lý sẽ nhanh hơn bởi bộ nhớ chỉ lưu trữ một lần cho class đó mà thôi. Ngoài ra chúng ta có thể tạo class một cách nhanh chóng không mất nhiều thời gian.

Nhược điểm: Việc sử dụng Anonymous Class chỉ dùng cho những trường hợp xử lý đơn giản bởi nó không có tính chất tái sử dụng, thứ hai nữa là khó nâng cấp và bảo trì đối với những thể loại này.

5. Lời kết

Như vậy một Anonymous Class thực chất là cách khai báo và sử dụng nhanh một class, khi sư dụng cách này bạn sẽ không có tính mở rộng mà chỉ mang tính chất sử dụng tạm thời, vì vậy phải cân nhắc khi sử dụng loại class này. Tuy nhiên trong một số trường hợp Anonymous Class lại được sử dụng vì tính nhanh gọn của nó.

Danh sách file tải về

Tên file tải về Pass giải nén
Tải bài học định dạng PDF freetuts.net hoặc gameportable.net

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top