".. OR DIE..."
do_something[$with_this] or die ['oops!'];
?>
[in php, "die" is actually an alias of "exit"]
beware until this is often used as an error handling statement actually isn't.. is just the "or" boolean operator overloaded [short circuited]
it won't supress any error message, won't prevent you for fatal errors or crashes, is not an alias for "try/catch", and could has unpredictable results.. it just means something like this:
- execute the first statement ""do_something[$with_this]"" normally
-- if the statement results TRUE: no need to execute the second statement so skip it
-- else if returns FALSE.. well i am not sure about the result of the whole expression, so continue with second statement ""die['cuack!]""
so you can't rely on all statements will suppress error messages or crashes, or will always return "false" on error or undesirable behavior...
for this better use the error skipping operator "@" "if" and "exit" commands, or use "try/catch" blocks
Giao diện đối tượng cho phép bạn tạo mã chỉ định phương thức nào lớp phải triển khai mà không cần phải xác định cách các phương thức này được triển khai. Các giao diện chia sẻ một không gian tên với các lớp và đặc điểm, vì vậy chúng có thể không sử dụng cùng tên
Các giao diện được định nghĩa giống như một lớp, nhưng với từ khóa interface
thay thế 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
Tất cả các phương thức được khai báo trong một giao diện phải được công khai;
Trong thực tế, các giao diện phục vụ hai mục đích bổ sung
- Để cho phép các nhà phát triển tạo các đối tượng của các lớp khác nhau có thể được sử dụng thay thế cho nhau vì chúng triển khai cùng một hoặc nhiều giao diện. Một ví dụ phổ biến là nhiều dịch vụ truy cập cơ sở dữ liệu, nhiều cổng thanh toán hoặc các chiến lược lưu trữ khác nhau. Các triển khai khác nhau có thể được hoán đổi mà không yêu cầu bất kỳ thay đổi nào đối với mã sử dụng chúng
- Để cho phép một hàm hoặc phương thức chấp nhận và hoạt động trên một tham số phù hợp với giao diện, trong khi không quan tâm đối tượng có thể làm gì khác hoặc nó được triển khai như thế nào. Các giao diện này thường được đặt tên như
do_something[$with_this] or die ['oops!'];
0,
?>do_something[$with_this] or die ['oops!'];
1,
?>do_something[$with_this] or die ['oops!'];
2, v.v. để mô tả tầm quan trọng của hành vi
?>
Các giao diện có thể định nghĩa các phương thức ma thuật để yêu cầu các lớp triển khai thực hiện các phương thức đó
Ghi chú
Mặc dù chúng được hỗ trợ, nhưng việc bao gồm trong các giao diện không được khuyến khích. Làm như vậy làm giảm đáng kể tính linh hoạt của đối tượng thực hiện giao diện. Ngoài ra, các hàm tạo không được thực thi bởi các quy tắc kế thừa, điều này có thể gây ra hành vi không nhất quán và không mong muốn
do_something[$with_this] or die ['oops!'];
?>
3
?>
Để triển khai một giao diện, toán tử do_something[$with_this] or die ['oops!'];
3 được sử dụng. Tất cả các phương thức trong giao diện phải được thực hiện trong một lớp; . Các lớp có thể triển khai nhiều giao diện nếu muốn bằng cách tách từng giao diện bằng dấu phẩy
?>
Cảnh báo
Một lớp cài đặt giao diện có thể sử dụng một tên khác cho các tham số của nó so với giao diện. Tuy nhiên, kể từ PHP 8. 0 ngôn ngữ hỗ trợ, có nghĩa là người gọi có thể dựa vào tên tham số trong giao diện. Vì lý do đó, các nhà phát triển nên sử dụng các tên tham số giống như giao diện đang được triển khai
Ghi chú
Các giao diện có thể được mở rộng như các lớp bằng cách sử dụng toán tử mở rộng
Ghi chú
Lớp thực hiện giao diện phải khai báo tất cả các phương thức trong giao diện với một. Một lớp có thể triển khai nhiều giao diện khai báo một phương thức có cùng tên. Trong trường hợp này, việc triển khai phải tuân theo tất cả các giao diện. Vì vậy hiệp phương sai và chống phương sai có thể được áp dụng
do_something[$with_this] or die ['oops!'];
?>
5
?>
Các giao diện có thể có hằng số. Hằng số giao diện hoạt động chính xác như hằng số lớp. Trước PHP 8. 1. 0, chúng không thể bị ghi đè bởi một lớp/giao diện kế thừa chúng
ví dụ
Ví dụ #1 Ví dụ về giao diện
do_something[$with_this] or die ['oops!'];
6
?>
do_something[$with_this] or die ['oops!'];
7
?>
class
0
class
1
class
2
class
3
class
4
Ví dụ #2 Giao diện có thể mở rộng
class
5
class
6
class
7
class
8
class
9
do_something[$with_this] or die ['oops!'];
00
?>
Ví dụ #3 Khả năng tương thích phương sai với nhiều giao diện
do_something[$with_this] or die ['oops!'];
01
?>
do_something[$with_this] or die ['oops!'];
02
?>
do_something[$with_this] or die ['oops!'];
03
?>
do_something[$with_this] or die ['oops!'];
04
?>
Ví dụ #4 Kế thừa nhiều giao diện
class
5
do_something[$with_this] or die ['oops!'];
06
?>
do_something[$with_this] or die ['oops!'];
07
?>
do_something[$with_this] or die ['oops!'];
08
?>
do_something[$with_this] or die ['oops!'];
09
?>
do_something[$with_this] or die ['oops!'];
10
?>
Ví dụ #5 Giao diện với hằng số
do_something[$with_this] or die ['oops!'];
11
?>
do_something[$with_this] or die ['oops!'];
12
?>
do_something[$with_this] or die ['oops!'];
13
?>
do_something[$with_this] or die ['oops!'];
14
?>
Ví dụ #6 Giao diện với các lớp trừu tượng
do_something[$with_this] or die ['oops!'];
15
?>
do_something[$with_this] or die ['oops!'];
16
?>
do_something[$with_this] or die ['oops!'];
17
?>
do_something[$with_this] or die ['oops!'];
18
?>
Ví dụ #7 Mở rộng và triển khai đồng thời
do_something[$with_this] or die ['oops!'];
19
?>
do_something[$with_this] or die ['oops!'];
20
?>
do_something[$with_this] or die ['oops!'];
21
?>
do_something[$with_this] or die ['oops!'];
22
?>
Một giao diện, cùng với các khai báo kiểu, cung cấp một cách tốt để đảm bảo rằng một đối tượng cụ thể chứa các phương thức cụ thể. Xem các khai báo kiểu và toán tử instanceof