Interface trong hướng đối tượng PHP
- 17-03-2023
- Toanngo92
- 0 Comments
Mục lục
Khái niệm interface
Các interface giúp xác định kế hoạch chi tiết cho các lớp, Chúng chỉ chứa các phương thức công khai và không có phương thức trừu tượng. interface cũng không có biến (thuộc tính – properties). Các lớp được triển khai kế thừa interface phải định nghĩa các phương thức được khai báo bên trong interface. Các interface có thể có hằng số. Hằng số interface hoạt động chính xác tương tự như hằng số class. Hằng số là các định danh có giá trị không thể thay đổi trong quá trình thực thi tập lệnh. Nếu các phương thức được khai báo trong interface không được thực hiện, sẽ xảy ra lỗi. Các interface được định nghĩa giống như một class. Tuy nhiên, điều này được thực hiện bằng cách sử dụng từ khóa interface thay vì từ khóa class và không có bất kỳ phương thức nào có nội dung được xác định.
Cú pháp:
<?php
interface InterfaceName{
// declare function prototype
}
?>
Ví dụ:
<?php
interface ClothingApp{
public function login($phone,$password);
public function register($phone,$password,$username);
}
interface Reward{
public function reward($phone,$reward);
}
class BestClothing implements ClothingApp{
public function login($phone, $password){
// to do
}
public function register($phone, $password, $username){
// toodo
}
}
Trong ví dụ này, một interface có tên ClothingApp được tạo và có ba phương thức được khai báo trong đó chứa các tham số khác nhau. Chúng là login(), register(). Các phương thức này không có bất kỳ định nghĩa nào, nghĩa là chúng không có bất kỳ câu lệnh nào và chỉ được khai báo (tương tự khái niệm nguyên mẫu hàm trong C/C++).
Ví dụ tạo một class triển khai kế thừa interface ClothingApp:
<?php
interface Clothingapp{
public function login($phone,$password);
public function register($phone,$password,$username);
}
class BestClothing implements ClothingApp{
public function login ($phone, $password){
// to do
}
public function register ($phone, $password, $username){
// toodo
}
}
Triển khai nhiều interface
PHP cho phép một lớp triển khai nhiều giao diện. Để triển khai nhiều giao diện, lớp sẽ phải xác định các phương thức được khai báo trong các giao diện được lớp triển khai.
Ví dụ:
<?php
interface Clothingapp{
public function login($phone,$password);
public function register($phone,$password,$username);
}
interface Reward{
public function reward($phone,$reward);
}
class BestClothing implements ClothingApp,Reward{
public function login ($phone, $password){
// to do
}
public function register ($phone, $password, $username){
// toodo
}
public function reward ($phone, $reward){
// todo
}
}
Trong ví dụ này, class BestClothing triển khai 2 interface khác nhau là Clothingapp và Reward, Việc triển khai các phương thức được khai báo bên trong cả hai interface phải được thực hiện như được đưa ra ở đây.
Lưu ý: Để thực thi mã thành công, mã cho các interface và class phải được đặt trong cùng một chương trình, Ngoài ra, lưu ý rằng ở đây, chức năng đầy đủ cho logic chưa được triển khai vì đây chỉ là minh họa cho sự kế thừa nhiều interface.