Hướng dẫn php option class - lớp tùy chọn php

Hướng dẫn php option class - lớp tùy chọn php

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 PHP
  • Hướng dẫn chi tiết
    • Đối tượng
    • Class
      • 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

Video Đối tượng và lập trình hướng đối tượng OOP trong PHP

Hướ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ượng

Class

Cấu trúc của một Class

Class

Cấ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 OOP

Kế thừa class

Static properties và Static method

  • Abstract class và Interface: gọi thuộc tính bên trong class từ bất kỳ đâu
  • Đố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.: gọi thuộc tính lớp cha từ lớp con khi đã kế thừa
  • 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.: chỉ có thể gọi từ lớp hiện tại. Cần có get và set để truy xuất dữ liệu.

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 class

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 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 method

Abstract 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.

+ Properties – các thuộc tính+ Methods – các phương thức, bản chất của phương thức là hàm xử lý (function).
+ Hàm constructor là một phương thức class đặc biệt tự động được gọi khi bạn khởi tạo một object.Khai báo thuộc tính và phương thức
Chỉ có thể kế thừa nhiều interface khác. Có thể kế thừa từ 1 lớp và nhiều interface.
Phạm vi truy cập mặc định là public Phạm vi truy cập là public, protected
Dùng để làm khuôn mẫu cho các phương thức Dùng để làm khuôn mẫu cho class
Dùng khi lớp kế thừa nó có chung một hành động Dùng khi lớp kế thừa nó có chung thuộc tính

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ệ

Hướng dẫn php option class - lớp tùy chọn php