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 SedanKhi 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.
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ớpCar, nơi bạn sẽ thêm phương thứcdisplayInfodriver.php: Tệp thực thi chính nhập và sử dụng lớpCar(đã 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();
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
1Nền tảng về OOP
Tệp bên ngoàiGiới thiệu về OOPLớp và đối tượngTừ khóa $thisPhương thứcThuộc tínhHàm khởi tạo (__construct)Hàm hủy (__destruct)Ôn tập: máy tính đơn giản4Kế thừa
Kế thừa cơ bảnTừ khóa parent::Ghi đè phương thứcTừ khóa finalLớp trừu tượngÔn tập: hệ thống phân cấp nhân viên7Đóng gói
Công khai, được bảo vệ, riêng tưTìm hiểu sâu về bộ điều chỉnh quyền truy cậpGetter và setterẨn thông tinRút gọn hàm khởi tạo (8.0)Ôn tập: hệ thống hồ sơ học sinh2Không gian tên và tự động nạp
Giới thiệu về không gian tênTừ khóa useChuẩn tự động nạp PSR-4Trình tự động nạp của ComposerÔn tập: dự án có tổ chức5Giao diện và hợp đồng
Giới thiệu về giao diệnTriển khai giao diệnTriển khai nhiều giao diệnGiao diện và lớp trừu tượngGợi ý kiểu với giao diệnÔn tập: Máy tính hình học8Phương thức ma thuật
Giới thiệu về phương thức ma thuật__toString và __debugInfo__get, __set, __isset, __unset__call và __callStatic__clone và sao chép đối tượng__serialize và __unserializeÔn tập: Bộ sưu tập tùy chỉnh3Thuộc tính của lớp
Thuộc tính instance và staticHằng số trong lớpPhương thức và thuộc tính staticThuộc tính private và protectedThuộc tính chỉ đọc (PHP 8.1)Ôn tập: Trình quản lý tài khoản ngân hàng6Đa hình
Xem lại việc ghi đè phương thứcĐa hình qua giao diệnGợi ý kiểu và kiểu hợpLiên kết tĩnh muộnÔn tập: bộ xử lý thanh toánTự luyện tập: Trình biên dịch PHP online