Menu
CoddyTech

Từ khóa $this

Thuộc phần Lập trình hướng đối tượng trong hành trình PHP của Coddy. Bài học 4 trên 91.

Từ khóa $this dùng để chỉ instance hiện tại của một lớp bên trong các phương thức của lớp đó. Từ khóa này giúp bạn truy cập và chỉnh sửa các thuộc tính của đối tượng hiện tại.

Đây là ví dụ về một lớp có các phương thức sử dụng $this:

<?php
class Car {
    public $color;
    public $model;

    public function honk() {
        echo "Beep beep!\n";
    }

    public function describe() {
        echo "I am a " . $this->color . " " . $this->model . "\n";
    }
}

Từ khóa $this được dùng bên trong các phương thức để tham chiếu đến đối tượng đã gọi phương thức đó.

Tạo một đối tượng ô tô và thiết lập các thuộc tính:

$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";

Bây giờ hãy gọi các phương thức:

$myCar->honk();
$myCar->describe();

Đầu ra:

Beep beep!
I am a Red Sedan

Khi bạn gọi $myCar->describe(), PHP tự động đặt $this để tham chiếu đến $myCar. Nhờ vậy, phương thức biết cần truy cập các thuộc tính của đối tượng nào.

Nếu bạn có một đối tượng xe khác:

$otherCar = new Car();
$otherCar->color = "Blue";
$otherCar->model = "SUV";
$otherCar->describe(); // Mình là một chiếc SUV màu xanh dương

Điểm chính: $this luôn tham chiếu đến đối tượng cụ thể đã gọi phương thức. Mỗi đối tượng có ngữ cảnh riêng khi phương thức chạy.

challenge icon

Thử thách

Dễ

Hoàn thiện lớp Car trong car.php bằng cách thêm phương thức có tên displayInfo, sử dụng từ khóa $this để in ra năm sản xuất, hãng và mẫu xe theo định dạng:

"This car is a [year] [make] [model]"

  • car.php: Chứa định nghĩa lớp Car, nơi bạn sẽ thêm phương thức displayInfo
  • driver.php: Tệp thực thi chính nhập và sử dụng lớp Car (đã khóa)

Tự làm thử

<?php
require_once 'car.php';

$myCar = new Car();
$myCar->year = 2020;
$myCar->make = "Toyota";
$myCar->model = "Corolla";

$myCar->displayInfo();
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch PHP online