EN VI

Objects & Classes (Đối Tượng và Lớp) Trong PHP

1. Class trong PHP là gì?

    Một class là một khuôn mẫu đại diện cho một thực thể trong thế giới thực và nó định nghĩa các thuộc tính và phương thức của thực thể. Trong phần này, chúng ta sẽ thảo luận về khung cơ bản một class PHP điển hình. Cách tốt nhất để hiểu các khái niệm mới là qua ví dụ. Vì vậy, hãy xem class Employee trong snippet sau, đại diện cho thực thể employee.

<?php
class Employee
{
    private $first_name;
    private $last_name;
    private $age;

    public function __construct($first_name, $last_name, $age)
    {
        $this->first_name = $first_name;
        $this->last_name = $last_name;
        $this->age = $age;
    }

    public function getFirstName()
    {
        return $this->first_name;
    }

    public function getLastName()
    {
        return $this->last_name;
    }

    public function getAge()
    {
        return $this->age;
    }
}
?>
    Câu lệnh class Employee trong dòng đầu tiên định nghĩa class Employee. Sau đó, chúng ta tiếp tục khai báo các thuộc tính, hàm constructor và các phương thức class khác.

2. Một object trong PHP là gì?

    Một đối tượng chính là một thể hiện của lớp.

    Trong ngữ cảnh của class Employee mà chúng ta vừa tạo trong phần trước, hãy xem cách khởi tạo một object của class đó.

<?php
$objEmployee = new Employee('Bob', 'Smith', 30);

echo $objEmployee->getFirstName(); // print 'Bob'
echo $objEmployee->getLastName(); // prints 'Smith'
echo $objEmployee->getAge(); // prints '30'

?>
    Bạn cần sử dụng từ khóa new khi bạn muốn khởi tạo một object của bất kỳ class nào cùng với tên class của nó và bạn sẽ nhận lại một giá trị object mới của class đó. Nếu một class đã định nghĩa phương thức __construct và nó yêu cầu các đối số, bạn cần truyền các đối số đó khi bạn khởi tạo một object. Trong trường hợp của chúng tôi, hàm constructor của class Employee yêu cầu ba đối số và do đó chúng tôi đã vượt qua những đối số này khi chúng tôi tạo object $objEmployee. Như chúng ta đã tìm hiểu về Constructor Và Destructor, phương thức __construct được gọi tự động khi object được khởi tạo.

   Tất nhiên, bạn cũng có thể tạo nhiều object của cùng một class, như được hiển thị trong đoạn code sau.

<?php
$objEmployeeOne = new Employee('Bob', 'Smith', 30);

echo $objEmployeeOne->getFirstName(); // prints 'Bob'
echo $objEmployeeOne->getLastName(); // prints 'Smith'
echo $objEmployeeOne->getAge(); // prints '30'
$objEmployeeTwo = new Employee('John', 'Smith', 34);

echo $objEmployeeTwo->getFirstName(); // prints 'John'
echo $objEmployeeTwo->getLastName(); // prints 'Smith'
echo $objEmployeeTwo->getAge(); // prints '34'

?>

3. Phân biệt $this và self trong đối tượng

$this
self
Tham chiếu đến các thành phần của đối tượng hiện tại
Tham chiếu đến các thành phần của class hiện tại
Không dùng được dùng trong static function
Có dùng được bên trong static function
Không thể truy cập cũng như thay đổi giá trị của thuộc tính static
Có thể truy cập cũng như thay đổi giá trị của thuộc tính static
Đều có thể gọi static function
Đều có thể gọi static function

Làm mất tính đa hình
Rating: 10 (1 Votes)
Comment

Login


Forgot Your Password?

Create Account


Lost your password? Please enter your email address. You will receive a link to create a new password.

Reset Password

Back to login