Hướng dẫn php option class - lớp tùy chọn php
Show Trong bài học này, chúng ta sẽ cùng tìm hiểu về đối tượng, class và lập trình hướng đối tượng trong PHP.
Video Đối tượng và lập trình hướng đối tượng OOP trong PHPHướng dẫn chi tiết"Ra đời, cuộc sống bươm chải, có làm vẫn không có ăn" nên phải gắn QUẢNG CÁO Các bạn cần hosting WordPress nhanh, rẻ và dễ sử dụng có free SLL hãy chọn Azdigi nhé. Link đăng ký: NHẬN NGAY ƯU ĐÃI Nếu các bạn mua hosting từ link trên, mình sẽ có một ít tiền để duy trì. Cảm ơn Đối tượngClass Cấu trúc của một Class ClassCấu trúc của một Class "Thăm ngàn, kẹp ngần nhưng vẫn không đủ chai ni (trả nợ)" nên dành vài dòng cho QUẢNG CÁO Các bạn cần hosting PHP - WordPress nhanh, rẻ và dễ sử dụng có thể chọn Azdigi nhé. Link đăng ký: NHẬN NGAY ƯU ĐÃI Nếu các bạn đăng ký hosting từ link quảng cáo, mình sẽ có một ít tiền để duy trì và "chai ni". Đặc tính cơ bản của OOP Cấu trúc của một ClassĐặc tính cơ bản của OOP Kế thừa class Static properties và Static method Abstract class và Interface class Table { public $mau_sac; public $so_chan_ban; function __construct($mau_sac, $so_chan_ban){ $this->mau_sac = $mau_sac; $this->so_chan_ban = $so_chan_ban; } function __destruct(){ echo 'Đối tượng đã bị xóa'; } function intro(){ echo 'Chiếc bàn có '.$so_chan_ban.' và có màu '.$mau_sac; } } $table = new Table('Đỏ', 4); var_dump($table); // thử truy cập vào thuộc tính của đối tượng echo $table->mau_sac; Đặc tính cơ bản của OOPKế thừa class Static properties và Static method
Giải pháp thay thế, chúng ta có thể tạo một class Table có 2 thuộc tính là Số chân bàn và Màu sắc. Như vậy Table có tác dụng như một kiểu dữ liệu mới, tự định nghĩa, có thể tái sử dụng nhiều lần. Class (lớp) là “bản vẽ” của một đối tượng, là mô hình của đối tượng. Khi nào cần tạo đối tượng (Object), chúng ta sẽ lấy các class đã tạo ra sử dụng. Kế thừa classclass Table { public $mau_sac; public $so_chan_ban; function __construct($mau_sac, $so_chan_ban){ $this->mau_sac = $mau_sac; $this->so_chan_ban = $so_chan_ban; } function intro(){ echo 'Bàn màu '.$this->mau_sac.' có '.$this->so_chan_ban.' chân bàn'; } function ham_tu_lop_cha(){ echo 'Hàm từ lớp cha'; } protected function ham_dac_biet(){ echo 'Hàm cho lớp con sử dụng'; } } class Table_Child extends Table{ public $chat_lieu; function __construct($mau_sac, $so_chan_ban, $chat_lieu){ $this->mau_sac = $mau_sac; $this->so_chan_ban = $so_chan_ban; $this->chat_lieu = $chat_lieu; } function intro(){ echo "Đây là chiếc bàn có màu {$this->mau_sac},có {$this->so_chan_ban} chân, và làm bằng {$this->chat_lieu}"; parent::intro(); parent::ham_dac_biet(); } } $tb_child = new Table_Child('nâu', 4, 'gỗ'); $tb_child->ham_tu_lop_cha(); $tb_child->intro(); Static properties và Static method Abstract class và Interface Static properties và Static methodAbstract class và Interface class StaticTable { public static $vi_tri = 'Ngoài trời'; public static function echo_table(){ echo 'Đây là bảng'; } } echo StaticTable::$vi_tri; StaticTable::echo_table(); Đối với các bạn học IT lập trình thì khái niệm đối tượng, lập trình hướng đối tượng OOP chắc không có gì xa lạ. Các sách cũng như các trang chia sẻ kiến thức IT khác thường nói rằng đối tượng trong lập trình được dùng để mô hình hóa các vật thể trong thế giới thực. Ngoài ra có thể hiểu rằng, đối tượng là một kiểu dữ liệu do bạn tự định nghĩa ra.intro() trong ví dụ đầu tiên mà không khởi tạo đối tượng $table thử xem chương trình có chạy được không nhé. Abstract class và InterfaceĐối với các bạn học IT lập trình thì khái niệm đối tượng, lập trình hướng đối tượng OOP chắc không có gì xa lạ. Các sách cũng như các trang chia sẻ kiến thức IT khác thường nói rằng đối tượng trong lập trình được dùng để mô hình hóa các vật thể trong thế giới thực. Ngoài ra có thể hiểu rằng, đối tượng là một kiểu dữ liệu do bạn tự định nghĩa ra. (Lớp trừu tượng) sẽ định nghĩa các phương thức (hàm) mà từ đó các lớp con sẽ kế thừa nó và Overwrite lại (tính đa hình). Chúng ta có thể khai báo thuộc tính và phương thức. abstract class Abs_Table{ public $so_chan; public $mau_sac; public function intro(){ echo 'haha'; } } Ví dụ, để mô tả 1 cái bàn, các bạn cần 1 biến số nguyên cho số chân bằng, 1 biến chuỗi cho màu sắc bàn. Với mỗi bàn, các bạn phải khởi tạo lại 2 biến rất mất thời gian và làm code dài dòng, khó kiểm soát hơn. (Giao diện, khuôn mẫu … Mình dịch sát nghĩa nhé) là một khuôn mẫu KHÔNG PHẢI ĐỐI TƯỢNG, giúp cho chúng ta tạo ra bộ khung cho một hoặc nhiều đối tượng. Chúng ta chỉ có thể khai báo phương thức trong interface. interface In_Table{ public function xep_chong(); public function don_ban(); } Giải pháp thay thế, chúng ta có thể tạo một class Table có 2 thuộc tính là Số chân bàn và Màu sắc. Như vậy Table có tác dụng như một kiểu dữ liệu mới, tự định nghĩa, có thể tái sử dụng nhiều lần. Class (lớp) là “bản vẽ” của một đối tượng, là mô hình của đối tượng. Khi nào cần tạo đối tượng (Object), chúng ta sẽ lấy các class đã tạo ra sử dụng.
Code mẫu: DownloadDownload Nếu có thắc mắc, hãy đặt câu hỏi bằng cách comment bên dưới, qua email, hoặc nhắn tin qua Fanpage Góc làm web.comment bên dưới, qua email, hoặc nhắn tin qua Fanpage Góc làm web. Liên hệ |