Phương thức
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 5 trên 91.
Phương thức (method) là các hàm (function) thuộc về một lớp. Chúng xác định hành vi hoặc hành động mà các đối tượng có thể thực hiện.
Đây là ví dụ về một lớp có các phương thức:
<?php
class Calculator {
public function greet() {
echo "Hello! I'm a calculator.\n";
}
public function add($a, $b) {
return $a + $b;
}
public function multiply($x, $y) {
$result = $x * $y;
echo $x . " × " . $y . " = " . $result . "\n";
return $result;
}
}Tạo một đối tượng máy tính:
$myCalc = new Calculator();Gọi một phương thức không cần tham số:
$myCalc->greet();Gọi các phương thức với tham số:
$sumResult = $myCalc->add(5, 3);
echo $sumResult . "\n";Gọi một phương thức vừa in ra vừa trả về một giá trị:
$product = $myCalc->multiply(4, 7);Đầu ra:
Hello! I'm a calculator.
8
4 × 7 = 28Phương thức có thể:
- Nhận tham số như
add($a, $b) - Trả về giá trị như
return $a + $b;
- In ra đầu ra trực tiếp như
echo "Hello!"; - Vừa in ra vừa trả về
Điểm chính: Phương thức định nghĩa những gì đối tượng có thể làm. Dùng các từ khóa public function để định nghĩa một phương thức bên trong một lớp. Gọi phương thức bằng toán tử -> trên một đối tượng.
Thử thách
DễTạo một lớp (class) BankAccount trong bank_account.php với:
- Một thuộc tính (property)
public $balance - Một phương thức (method)
depositnhận một khoản tiền và cộng khoản đó vào số dư - Một phương thức
withdrawnhận một khoản tiền và trừ khoản đó khỏi số dư - Một phương thức
getBalancetrả về số dư hiện tại
Sau đó, trong driver.php, tạo một tài khoản có số dư 0, nạp $100, rút $30 và in số dư theo định dạng: "Current balance: $[balance]"
Tự làm thử
<?php
require_once 'bank_account.php';
$myAccount = new BankAccount();
$myAccount->balance = 0;
// TODO: Nạp 100 vào tài khoản
// TODO: Rút 30 khỏi tài khoản
// TODO: In số dư theo định dạng: "Current balance: $[balance]"
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