News & Events
PHP7 Bài 6: Constant Arrays và Anonymous classes
- 27/11/2017
- Posted by: Cao Anh Nhất
- Category: PHP cơ bản
Ở bài học lập trình web hôm nay chúng ta sẽ cùng tìm hiểu về Constant Arrays và Anonymous classes.
1.Constant Arrays
Ở trong PHP 5.x chúng ta có thể khai báo các hằng số bằng cách sử dụng từ khóa const
hoặc define()
, nhưng chúng ta chỉ có thể gán các kiểu dữ liệu đơn cho các hằng số mà không thể gán các kiểu dữ liệu mảng hoặc object.
1 2 3 4 5 6 7 8 | <?php //Khai báo bằng const const CONSTANT = 'Hello'; print(CONSTANT); //Khai báo bằng define() define('CONSTANT_ORTHER', 'Hello'); print(CONSTANT_ORTHER); ?> |
Kết quả trả về
1 2 | Hello Hello |
Khai báo hằng số với PHP 7.x sử dụng Array Constant. Xem thêm: học android
Với PHP 7 thì chúng ta có thể khai báo thêm kiểu dữ liệu mảng cho hằng số bằng phương thức define()
1 2 3 4 5 6 7 8 9 10 | <?php define('VIETPRO', [ 'Học', 'lập', 'trình', 'web' ] ); print(VIETPRO[1]); ?> |
Kết quả trả về
1 | lập |
Ở ví dụ trên tôi đã khai báo một mảng liên tục , ngoài ra chúng ta có thể sử dụng các key để tạo hằng số như khi chúng ta thao tác với mảng thông thường của PHP.
Với việc khai báo bằng Array Constant giúp chúng ta thay vì khai báo nhiều từ khóa để khai báo hàm thì bây giờ chúng ta chỉ cần một và từ khóa là đủ.
Lưu ý: Hằng số được định nghĩa bằng cách sử dụng từ khóa const luôn luôn phân biệt chữ hoa chữ thường , trong khi các hằng số định nghĩa bằng cách sử dụng define()
có thể không phân biệt chữ hoa chữ thường.
Tham gia ngay khóa học lập trình web chuyên nghiệp – Học xong đi làm ngay.
2.Anonymous classes
Anonymous class hay còn gọi là Class ẩn danh là một kiểu khai báo Class mới được hỗ trợ trong PHP 7.
Trước khi đi vào tìm hiểu về Anonymous class thì chúng ta sẽ điểm qua một chút về cách khai báo class thông thường .
Khi chúng ta khai báo một class thông thường sẽ sử dụng cú pháp như sau
1 2 3 4 5 6 7 8 9 10 | <?php class NameClass { public function sayHello() { print('Welcome to hocthietkeweb.net.vn'); } } $class = new NameClass(); $class->sayHello(); ?> |
Kết quả trả về
1 | Welcome to hocthietkeweb.net.vn |
Điều này quá bình thường rồi phải không các bạn
bây giờ cũng với ví dụ như vậy tôi sẽ viết bằng Anonymous classes
1 2 3 4 5 6 7 8 | <?php $class = new class { public function sayHello() { print('Welcome to hocthietkeweb.net.vn'); } }; $class->sayHello(); |
Kết quả trả về vẫn không có gì thay đổi.
Từ ví dụ trên chúng ta có thể suy ra được cú pháp của Anonymous class
1 2 3 | new class { //List method and property }; |
Ngoài các ví dụ trên thì tôi cũng muốn giới thiệu cho các bạn một số cách sử dụng khác của Anonymous classes trong PHP7
Ví dụ: Sử dụng như là một tham số
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php //Tạo interface interface Logger { public function log(string $msg); } //Tạo Class Con class Application { private $logger; public function getLogger(): Logger { return $this->logger; } public function setLogger(Logger $logger) { $this->logger = $logger; } } // Class con với tham số truyền vào là một Anonynous Class $app = new Application(); $app->setLogger(new class implements Logger { public function log(string $msg) { print($msg); } }); $app->getLogger()->log("Welcome to hocthietkeweb.net.vn"); ?> |
Bạn có thể xem các bài học trước ở đây:
- PHP7 bài 1: PHP7 là gì – PHP7 có gì mới
- PHP7 bài 2: Cài đặt Xampp để chạy localhost
PHP7 Bài 4: xác định kiểu tham số và dữ liệu trả về khi tạo function
Các bài học tiếp theo:
Trả lời Hủy
Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.