Bài 03: Lớp – Thuộc Tính – Phương Thức

Ở bài trước các bạn đã biết được định nghĩa lập trình hướng đối tượng nhưng chỉ nói ở múc độ lý thuyết chứ chưa thấy đụng đến code. Mỗi một đối tượng thì sẽ có một hoặc nhiều class, và ở trong class thì sẽ có một hoặc nhiều các thuộc tính, phương thức. Và bài hôm nay chúng ta sẽ đi vào tìm hiểu lớp, thuộc tính, phương thức trong PHP cũng như chúng ta sẽ bắt đầu sử dụng code để tạo các đối tượng thông qua class (lớp).

Xem Thêm:

1. Lớp (class) Là Gì?

Lớp (class) được ví như là một mẩu mô tả trạng thái, hành động của đối tượng (nhưng không phải đối tượng). Để khai báo nó trong PHP thì chúng ta sử dụng cú pháp sau:

class TenLop
{
     //Các khai báo bên trong
}

Trong đóTeLop là tên của class. Nó có các ràng buộc về tên giống như đặt tên hàm trong hướng thủ tục.

VD: Mình sẽ khai báo lớp laptrinh đại diện cho đối tượng webtmcp.

class laptrinh
{
     //code
}

2. Thuộc Tính Của Lớp

Thuộc tính (properties) trong class có tác dụng như các biến và hằng trong phương pháp lập trình hướng thủ tục. Ví dụ như lớp lập trình sẽ có các thuộc tính như php, laravel, js, css, html,… Và để khai báo thuộc tính trong class chúng ta sử dụng cú pháp:

<?php
class laptrinh
{
    //đối với tt động
    var $propertyName;
    //đối với tt cố định(hằng)
    const $constName = value;
}

Trong đó:

  • Để khai báo thuộc tính động (biến) thì chúng ta sử dụng từ khóa var, và chúng ta cũng có thể thiết lập giá trị luôn cho biến bằng phép gán. ví dụ: $name= 'Webtmcp';
  • Để khai báo thuộc tính cố định thì chúng ta sử dụng từ khóa const, với thuộc tính này thì chúng ta không thể thay đổi giá trị của nó (giống hằng).
  • Tên của thuộc tính cũng được bao gồm các ràng buộc giống như đặt tên biến và hằng.

VD: Mình sẽ khai báo lớp laptrinh có các thuộc tính động là css,js và có thuộc tính cố tịnh là lang=php.

class laptrinh
{
     var $name;
     var $css;
     var $js;
     const lang = php;
}

3. Phương Thức Của Lớp

Phương thức trong trong class là các hành động hành vi của class đó. Và nó khá giống với hàm ở trong phương pháp lập trình hướng thủ tục. Cú pháp khai báo như sau:

class Name
{
     function tenphuongthuc()
     {
         //code 
     }
}

Trong đó: tenphuongthuc là tên của phương thức trong class, và nó cũng có ràng buộc như tên đặt tên hàm

VD: đối với class laptrinh ở trên thì sẽ bổ sung thêm các phương thức như: html, laravel,…

class laptrinh
{
     var $name;
     var $css;
     var $js;
     const lang = php;

     function html()
     {
           // code o day
     }

     function laravel()
     {
           // code o day
     }
}

Và đương nhiên vif đã giống như hàm thì các bạn cũng có thể truyền các argument vào hàm được.

function html($meta)
{
     //code
}

4. Khởi Tạo Lớp

Bạn phải phân biệt được 2 từ khởi tạo đối tượng và khai báo đối tượng, khai báo đối tượng là ta tạo một lớp (class) của đối tượng đó, còn khởi tạo đối tượng là ta tạo một hình tượng của lớp mà ta đã khai báo.

Để khởi tạo một class trong PHP thì chúng ta sẽ có 2 cách nhưng ở bài này mình sẽ trình bài một cách thôi. Để khởi tạo class trong PHP chúng ta sử dụng cú pháp:

new className;
     //hoặc
new ClassName();

Trong đóclassName là tên của class các bạn cần khởi tạo (khuyến khích dùng cách 2).
Và bạn cũng hàn toàn có thể gán nó vào một biến với kiểu dữ liệu là object bằng phép gán.

$variable = new className();

VD: Mình sẽ khởi tạo class LapTrinh ở trên.

$css = new LapTrinh();

5. Truy Xuất Thuộc Tính Của Class.

Để truy xuất thuộc tính của một class chúng ta sẽ  chia làm 2 dạng là truy xuất trong class và truy xuất ngoài class.

Truy xuất trong class

Để truy xuất các thuộc tính động trong class thì chúng ta dùng từ khóa this với cú pháp: $this->propertyName;

VD: Truy xuất thông tin của thuộc tính name trong phương thức noi của class ConNguoi.

class ConNguoi
{
    var $name;
    var $mat;
    var $mui;
    const sochan = 2;
    function an()
    {
        //code
    }
    function noi($caunoi)
    {
        return $this->name = $caunoi;
    }
    function di()
    {
        //code
    }
}
Còn nếu muốn truy xuất thông tin của thuộc tính cố định trong class chúng ta sẽ sử dụng một trong 2 cú pháp sau:
self::propertyName;
//hoặc
className::propertyName;
//Mình khuyên dùng cách 1
VD: Mình sẽ  xây dựng thêm phương thức getSoChan có nhiệm vụ trả về soChan bên của lớp ConNguoi.
function getSoChan()
{
    return self::sochan;
}

Truy xuất ngoài class

Để truy xuất thuộc tính khi đứng bên ngoài class thì chúng ta cũng chia làm 2 loại:

+ Đối với thuộc tính động chúng ta sẽ sử dụng từ cú pháp như sau:

$newClass = new className();
$newClass->propertyName;
//Mình khuyên dùng cách 2 vì viết nó sẽ tường minh, dễ đọc hơn.

Đối với thuộc tính cố định (constant) chúng ta sẽ sử dụng cú pháp sau:

className::propertyName;

VD: Mình sẽ gọi các thuộc tính động và cố định trong lớp ConNguoi.

//khởi tạo lớp
$tmcp = new ConNguoi();
//gọi tt động
//gọi name
$tmcp->name;
//gọi mui
$tmcp->mui
//gọi tt cố định constant
ConNguoi::sochan;

6. Truy Xuất Phương Thức Của Class

Đối với class thì mình cũng chia làm 2 dạng con là truy xuất trong và truy xuất ngoài class.

Truy xuất trong class.

Để truy xuất các phương thức của class khi mà chúng ta vẫn đang ở trong class thì chúng ta sử dụng cú pháp sau:

$this->methodName();
//hoặc nếu có các argument
$this->methodName(argument);

VD:

class ConNguoi
{
    var $name = 'aa';
    var $mat;
    var $mui;
    const sochan = 2;
    function an()
    {
        //code
    }
    function noi()
    {
        return $this->getSoChan();
    }
    function di()
    {
        //code
    }
    function getSoChan()
    {
        return self::sochan;
    }
}

Truy xuất ngoài class.

Đối với gọi phương thức khi đang ở bên ngoài class thì các bạn chỉ cần sử dụng cú pháp sau:

$newClass = new className();
$newClass->methodName;

VD:

$connguoi = new ConNguoi();
$connguoi->noi();

7. Tạm Kết

Như vậy trong phần này mình đã giới thiệu với các bạn cơ bản về lớp, thuộc tính, phương thức trong PHP hướng đối tượng rồi, và mình xin được tổng hợp lại đoạn code của bài này như sau:

class ConNguoi
{
    //khai báo tt động
    public $name;
    public $mat;
    public $mui;
    //khai báo constant
    const SOCHAN = 2;
    //khai báo phương thức
    public function an()
    {
        //code
    }
    public function noi($caunoi)
    {
        //gọi phương thức trong class
        return $this->getSoChan();
    }
    public function di()
    {
        //code
    }
    public function getName()
    {
        //gọi tt động trong class
        return $this->name;
    }
    public function getSoChan()
    {
        //gọi tt constant trong class
        return self::SOCHAN;
    }
}
//khởi tạo class
$connguoi = new ConNguoi();
//gọi tt ngoài class và đồng thời gán giá trị mới
$connguoi->name = 'WEBTMCP';
//gọi lại tt để xem thay đổi
echo $connguoi->name;
//gọi phương thức
echo $connguoi->noi('WEBTMCP');

Các bạn có thể tham khảo các bài viết khác trên Fanpages Tại Đây

Đánh giá post

Có thể bạn quan tâm

  • Tham trị và tham chiếu trong php

    Bài 21: Tham Trị Và Tham Chiếu Trong PHP

    Nội Dung Chính1. Lớp (class) Là Gì?2. Thuộc Tính Của Lớp3. Phương Thức Của Lớp4. Khởi Tạo Lớp5. Truy Xuất Thuộc Tính Của Class.Truy xuất trong classTruy xuất ngoài class6. Truy Xuất Phương Thức Của ClassTruy xuất trong class.Truy xuất ngoài class.7. Tạm Kết Sau khi trải qua 20 bài học PHP cơ bản thì bài …

  • hàm header trong php

    Bài 20: Hàm Header Trong PHP

    Nội Dung Chính1. Lớp (class) Là Gì?2. Thuộc Tính Của Lớp3. Phương Thức Của Lớp4. Khởi Tạo Lớp5. Truy Xuất Thuộc Tính Của Class.Truy xuất trong classTruy xuất ngoài class6. Truy Xuất Phương Thức Của ClassTruy xuất trong class.Truy xuất ngoài class.7. Tạm Kết Hôm nay chúng ta tiếp tục tìm hiểu về một hàm khá …

  • hàm xủ ly ngày thang trong php

    Bài 19: Hàm Xử Lý Ngày Tháng Trong PHP

    Nội Dung Chính1. Lớp (class) Là Gì?2. Thuộc Tính Của Lớp3. Phương Thức Của Lớp4. Khởi Tạo Lớp5. Truy Xuất Thuộc Tính Của Class.Truy xuất trong classTruy xuất ngoài class6. Truy Xuất Phương Thức Của ClassTruy xuất trong class.Truy xuất ngoài class.7. Tạm Kết Ở bài trước chúng ta đã tìm hiểu về các hàm xử lý …

  • các hàm kiểm tra dữ liệu trong php

    Bài 18: Các Hàm Kiểm Tra Dữ Liệu Trong PHP

    Nội Dung Chính1. Lớp (class) Là Gì?2. Thuộc Tính Của Lớp3. Phương Thức Của Lớp4. Khởi Tạo Lớp5. Truy Xuất Thuộc Tính Của Class.Truy xuất trong classTruy xuất ngoài class6. Truy Xuất Phương Thức Của ClassTruy xuất trong class.Truy xuất ngoài class.7. Tạm Kết Trong một dự án chúng ta phải ràng buộc được các thông …

  • upload file trong php

    Bài 17: Upload File Trong PHP

    Nội Dung Chính1. Lớp (class) Là Gì?2. Thuộc Tính Của Lớp3. Phương Thức Của Lớp4. Khởi Tạo Lớp5. Truy Xuất Thuộc Tính Của Class.Truy xuất trong classTruy xuất ngoài class6. Truy Xuất Phương Thức Của ClassTruy xuất trong class.Truy xuất ngoài class.7. Tạm Kết Bài trước mình đã giới thiệu với mọi người khá là nhiều hàm …

  • các hàm xử lý file trong php

    Bài 16: Các Hàm Xử Lý File Trong PHP

    Nội Dung Chính1. Lớp (class) Là Gì?2. Thuộc Tính Của Lớp3. Phương Thức Của Lớp4. Khởi Tạo Lớp5. Truy Xuất Thuộc Tính Của Class.Truy xuất trong classTruy xuất ngoài class6. Truy Xuất Phương Thức Của ClassTruy xuất trong class.Truy xuất ngoài class.7. Tạm Kết Vấn đề xử lý file trong PHP rất quan trọng trong trường …