Class và object trong PHP

    0

    Class và object là hai khái niệm cơ bản trong lập trình hướng đối tượng. Trong bài học trước chúng ta đã nhắc lại về hai khái niệm này.

    Là một ngôn ngữ hỗ trợ lập trình hướng đối tượng, PHP cung cấp cú pháp riêng để người lập trình có thể tự tạo ra class (kiểu dữ liệu) của riêng mình và tạo ra object (biến) từ class tự tạo đó.

    Trong bài học này chúng ta sẽ làm quen với cú pháp tạo class và object trong PHP.

    Lưu ý, bạn có thể gặp những cấu trúc lạ. Tạm thời chúng ta sẽ không giải thích chi tiết trong bài học này mà sẽ trình bày trong từng bài học riêng.

    Thực hành: Tạo class và object trong PHP

    Để hình dung rõ hơn những gì đã nói trong phần lý thuyết, hãy cùng làm một bài thực hành nhỏ.

    Bước 1. Tạo một thư mục mới OOP và mở bằng PhpStorm

    Bước 2. Tạo file class mới

    Click phải vào thư mục -> New -> PHP Class

    Đặt tên cho class mới là Employee:

    Bước 3. Viết code cho class như sau:

    <?php
    
    class Employee {
        private $name;
        private $title;
    
        public function getName(){
            return $this->name;
        }
    
        public function setName($value){
            $this->name = $value;
        }
    
        public function sayHello(){
            echo "Hi, my name is {$this->getName()}";
        }
    }

    Trong ba bước trên bạn đã tạo ra một kiểu dữ liệu mới Employee. Đây là một kiểu dữ liệu tự tạo thuộc loại class.

    Bạn có thể sử dụng kiểu dữ liệu mình tạo như sau:

    Bước 4. Tạo thêm file Main.php trong cùng thư mục với Employee.php và viết code như sau:

    <?php
    
    require_once "Employee.php";
    
    $joe = new Employee();
    $joe->setName("Joe Biden");
    $joe->sayHello();

    Ở bước này bạn tạo object $joe từ class Employee và gọi một số hàm (phương thức) từ object này.

    Bước 5. Chạy thử

    Chú ý chọn Interpreter và ấn Run.

    Kết quả như sau:

    C:\php\php.exe Z:\OneDrive\Tutorials\PHP\OOP\Main.php
    Hi, my name is Joe Biden
    Process finished with exit code 0

    Để tập trung vào nội dung chính là lập trình hướng đối tượng, trong phần này chúng ta quay trở lại với PHP CLI. Nếu bạn muốn sử dụng giao diện web thì hãy tự thực hiện.

    Tạo class trong PHP

    Trong phần thực hành trên bạn đã tự xây dựng một class (kiểu dữ liệu) mới Employee.

    Cú pháp khái báo class trong PHP như sau:

    class Class_Name
    {
     // Khai báo các thuộc tính
     // Khai báo các phương thức
    }

    Nếu bạn nào đã học qua C++, C# hay Java thì cú pháp này rất quen thuộc.

    Trong cú pháp này class là từ khóa của PHP dành cho khai báo kiểu dữ liệu mới thuộc nhóm class.

    Theo sau từ khóa class là tên class do bạn tự chọn. Tên class phải đặt theo quy tắc đặt định danh chung của PHP.

    Cặp dấu {} tạo ra phần thân class. Trong thân class thường chứa hai vùng: khai báo cho các thuộc tính (dữ liệu), và khai báo cho các phương thức (hàm xử lý).

    Trong ví dụ trên, $name$title là các property, còn getName(), setName(), sayHello() là các method.

    Chúng ta sẽ nói chi tiết về thuộc tính và phương thức trong các bài học riêng sau.

    Khi xây dựng class trong PHP nên lưu ý thêm một số vấn đề sau:

    1. Mỗi class nên đặt trong một file riêng biệt với tên file đặt trùng với tên class. Điều này giúp bạn quản lý code dễ dàng hơn. Khi nhìn file bạn sẽ biết ngay nó chứa code của class nào.
    2. Một nhóm class có cùng vai trò / đặc điểm nên đặt chung trong một thư mục.
    3. Nên sử dụng namespace (không gian tên) khi khai báo class. Điều này giúp tránh nguy cơ xung đột tên gọi nếu bạn sử dụng các thư viện của bên thứ ba. Chúng ta sẽ học về namespace trong một bài học riêng.
    4. Khi đặt tên class nên tuân thủ theo định dạng PascalCase: Viết hoa chữ cái đầu mỗi từ; Các từ trong tên gọi được viết sát nhau. Không sử dụng dấu ghạch chân để ghép từ trong tên gọi.

    Tạo object từ class trong PHP

    Class Employee bạn tạo ra ở phần thực hành trên là một kiểu dữ liệu. Do vậy, bạn có thể dùng nó để tạo ra biến (dữ liệu). Tuy nhiên, việc tạo ra biến từ kiểu dữ liệu class có điểm hơi khác với tạo ra các biến thuộc các kiểu dữ liệu cơ bản.

    Để tạo ra biến từ class trong PHP sử dụng từ khóa new như sau:

    $tên_biến = new Tên_Class();

    Như ở phần thực hành chúng ta đã tạo biến $joe như sau:

    $joe = new Employee();

    Biến tạo ra từ class được gọi là object.

    Từ một class bạn có thể tạo ra nhiều object. Các object này độc lập nhau, mặc dù tên các biến và hàm chứa trong chúng là giống nhau. Nghĩa là: (1) dữ liệu của các object không liên quan đến nhau; (2) việc thực hiện hàm (phương thức) của object này không có liên quan đến việc thực hiện hàm của object khác.

    Ví dụ:

    $joe = new Employee();
    $joe->setName("Joe Biden");
    $joe->sayHello();
    
    $donald = new Employee();
    $donald->setName("Donald Trump");
    $donald->sayHello();

    Bạn có thể thấy, object $joe và $donald cùng được tạo ra từ class Employee. Chúng có cùng các hàm setName() và sayHello(). Tuy nhiên các object này tồn tại và làm việc độc lập. Việc thực thi phương thức trên object này không ảnh hưởng đến object kia.

    Lưu ý:

    1. Bạn không thể gọi phương thức trực tiếp từ class do class là đơn vị của chương trình có vai trò mô tả thông tin (dữ liệu + hành động). Tương tự bạn cũng không thể truy xuất thuộc tính từ class.
    2. Bạn có thể gọi phương thức từ object. Object mới là những gì tồn tại thực tế trong bộ nhớ khi thực hiện chương trình. Tương tự, bạn có thể truy xuất thuộc tính từ object.
    3. Để truy xuất thuộc tính hoặc gọi phương thức từ object bạn sử dụng phép toán -> trên object.
    4. Do object là một biến, bạn cần áp dụng các quy tắc và quy ước đặt tên biến cho object.

    + Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn.
    + Nếu bạn thấy bài viết hữu ích, hãy giúp chia sẻ tới mọi người.
    + Nếu có thắc mắc hoặc cần trao đổi thêm, mời bạn viết trong phần thảo luận cuối trang.
    Cảm ơn bạn!

    Kết luận

    Trong bài học này bạn đã học cách khai báo class và tạo object trong PHP.

    • Để khai báo kiểu dữ liệu dạng class, bạn sử dụng từ khóa class.
    • Trong khai báo class sẽ định nghĩa phần dữ liệu (property) và phần hành động (method).
    • Để tạo object từ class, bạn sử dụng từ khóa new.
    • Bạn chỉ truy xuất được các phương thức và thuộc tính từ object.
    • Để truy xuất các thành viên của object bạn sử dụng phép toán ->.
    Subscribe
    Notify of
    guest
    0 Thảo luận
    Inline Feedbacks
    View all comments