PHP thực hiện một cách để tái sử dụng mã gọi là đặc điểm. Show
Đặc điểm là một cơ chế để tái sử dụng mã trong các ngôn ngữ kế thừa duy nhất như PHP. Một đặc điểm nhằm giảm một số hạn chế của việc thừa kế bằng cách cho phép nhà phát triển sử dụng lại các bộ phương thức một cách tự do trong một số lớp độc lập sống trong các phân cấp lớp khác nhau. Các ngữ nghĩa của sự kết hợp của các đặc điểm và các lớp được định nghĩa theo cách làm giảm độ phức tạp và tránh các vấn đề điển hình liên quan đến nhiều kế thừa và mixin. Một đặc điểm tương tự như một lớp, nhưng chỉ nhằm mục đích nhóm chức năng theo cách hạt mịn và nhất quán. Không thể tự mình khởi tạo một đặc điểm. Nó là một bổ sung cho sự kế thừa truyền thống và cho phép thành phần hành vi ngang; Đó là, việc áp dụng các thành viên trong lớp mà không cần phải thừa kế. Ví dụ số 1 ví dụ đặc điểm
ezcReflectionMethod extends ReflectionMethod { Quyền ưu tiênMột thành viên được thừa hưởng từ một lớp cơ sở bị ghi đè bởi một thành viên được chèn bởi một đặc điểm. Thứ tự ưu tiên là các thành viên từ các phương thức ghi đè lớp hiện tại, lần lượt ghi đè các phương thức kế thừa. Ví dụ #2 Ví dụ về thứ tự ưu tiên Một phương thức được kế thừa từ một lớp cơ sở được ghi đè bởi phương thức được chèn vào MyHelloworld từ đặc điểm Sayworld. Hành vi là giống nhau đối với các phương thức được xác định trong lớp MyHelloworld. Thứ tự ưu tiên là các phương thức từ các phương thức ghi đè lớp hiện tại, lần lượt ghi đè các phương thức từ lớp cơ sở.
SayWorld { Ví dụ trên sẽ xuất ra: Ví dụ #3 Ví dụ về thứ tự ưu tiên thay thế
Ví dụ trên sẽ xuất ra: Ví dụ #3 Ví dụ về thứ tự ưu tiên thay thế________số 8 Nhiều đặc điểm
class 2Ví dụ trên sẽ xuất ra: Ví dụ #3 Ví dụ về thứ tự ưu tiên thay thế________số 8 Nhiều đặc điểm Nhiều đặc điểm có thể được chèn vào một lớp bằng cách liệt kê chúng trong câu lệnh Ví dụ #4 Cách sử dụng nhiều đặc điểm Giải quyết xung đột Nếu hai đặc điểm chèn một phương thức có cùng tên, một lỗi gây tử vong được tạo ra, nếu xung đột không được giải quyết rõ ràng.
ezcReflectionMethod extends ReflectionMethod { 0Để giải quyết xung đột đặt tên giữa các đặc điểm được sử dụng trong cùng một lớp, toán tử class3 cần được sử dụng để chọn chính xác một trong các phương pháp mâu thuẫn. Vì điều này chỉ cho phép người ta loại trừ các phương thức, toán tử Ví dụ #5 Giải quyết xung đột class Trong ví dụ này, người nói chuyện sử dụng các đặc điểm A và B. Vì A và B có các phương pháp mâu thuẫn, nó xác định để sử dụng biến thể của SmallTalk từ Đặc điểm B và biến thể của BigTalk từ Đặc điểm A. Bí danh_Talker sử dụng toán tử Thay đổi khả năng hiển thị phương pháp
ezcReflectionMethod extends ReflectionMethod { 5Ví dụ trên sẽ xuất ra: Ví dụ #3 Ví dụ về thứ tự ưu tiên thay thế________số 8 Nhiều đặc điểm Nhiều đặc điểm có thể được chèn vào một lớp bằng cách liệt kê chúng trong câu lệnh Ví dụ #4 Cách sử dụng nhiều đặc điểm class
ezcReflectionMethod extends ReflectionMethod { 8Giải quyết xung độtNếu hai đặc điểm chèn một phương thức có cùng tên, một lỗi gây tử vong được tạo ra, nếu xung đột không được giải quyết rõ ràng.
Ví dụ #5 Giải quyết xung đột class
<?php 1Trong ví dụ này, người nói chuyện sử dụng các đặc điểm A và B. Vì A và B có các phương pháp mâu thuẫn, nó xác định để sử dụng biến thể của SmallTalk từ Đặc điểm B và biến thể của BigTalk từ Đặc điểm A.
<?php 4 Bí danh_Talker sử dụng toán tử
<?php 7Thay đổi khả năng hiển thị phương pháp Sử dụng cú pháp Ví dụ #6 Thay đổi khả năng hiển thị phương pháp
trait 0Những đặc điểm sáng tác từ các đặc điểm Giống như các lớp có thể sử dụng các đặc điểm, các đặc điểm khác cũng vậy. Bằng cách sử dụng một hoặc nhiều đặc điểm trong một định nghĩa đặc điểm, nó có thể được cấu tạo một phần hoặc hoàn toàn các thành viên được xác định trong các đặc điểm khác.
trait 3Safak Ozpinar / Safakozpinar tại Gmail ¶ ¶ 10 năm trước
trait 6Greywire tại Gmail Dot Com ¶ ¶ 10 năm trước
trait 6Greywire tại Gmail Dot Com ¶ ¶ Stefan W ¶ class use SayWorld; }$o = new MyHelloWorld(); $o->sayHello(); ?> 0 class class trait 69 năm trước ¶ 10 năm trước class class class class SayWorld { 8Greywire tại Gmail Dot Com ¶ ¶ 10 năm trước class
class
<?php 3Greywire tại Gmail Dot Com ¶ ¶ Stefan W ¶
<?php 79 năm trước ¶ Chris Dot Rutledge tại Gmail Dot Com ¶
class class 0T8 tại At Pobox Dot Com ¶ ¶ Qeremy (!) Gmail ¶
trait 67 năm trước ¶ Qeremy (!) Gmail ¶
trait 67 năm trước ¶ Qeremy (!) Gmail ¶
class TheWorldIsNotEnough { 37 năm trước ¶ 10 năm trước
trait 6RAWSRC ¶ ¶ 4 năm trước
class use 0Canufrank ¶ ¶ 6 năm trước
use 4Balbuf ¶ ¶ 10 năm trước
use 8marko tại newvibrations dot net ¶ ¶ 6 năm trước
trait 6Balbuf ¶ ¶ marko tại newvibrations dot net ¶
class 06Edward ¶ ¶ 10 năm trước
class class 11guidobelluomo tại gmail dot com ¶ ¶ 2 năm trước
class 15QSchuler tại Neosyne Dot Com ¶ ¶ marko tại newvibrations dot net ¶
class 20Edward ¶ ¶ Qeremy (!) Gmail ¶
trait 67 năm trước ¶ Stefan W ¶
9 năm trước ¶ marko tại newvibrations dot net ¶
trait 6Edward ¶ ¶ Stefan W ¶
trait 6Đặc điểm trong PHP là gì?Đặc điểm là một cơ chế để tái sử dụng mã trong các ngôn ngữ kế thừa duy nhất như PHP.Một đặc điểm nhằm giảm một số hạn chế của việc thừa kế bằng cách cho phép nhà phát triển sử dụng lại các bộ phương thức một cách tự do trong một số lớp độc lập sống trong các phân cấp lớp khác nhau.a mechanism for code reuse in single inheritance languages such as PHP. A Trait is intended to reduce some limitations of single inheritance by enabling a developer to reuse sets of methods freely in several independent classes living in different class hierarchies.
Sự khác biệt giữa một lớp và một đặc điểm trong PHP là gì?Đặc điểm được sử dụng để khai báo các phương thức có thể được sử dụng trong nhiều lớp.Các đặc điểm có thể có các phương thức và phương thức trừu tượng có thể được sử dụng trong nhiều lớp và các phương thức có thể có bất kỳ công cụ sửa đổi truy cập nào (công khai, riêng tư hoặc được bảo vệ).. Traits can have methods and abstract methods that can be used in multiple classes, and the methods can have any access modifier (public, private, or protected).
Khi nào tôi nên sử dụng tính trạng trong PHP?Nếu bạn muốn sử dụng lại một số mã giữa nhiều lớp, sử dụng một đặc điểm là một giải pháp thay thế để mở rộng lớp..... Một đặc điểm có thể tiết kiệm cho bạn một số bản sao/dán thủ công bằng cách cung cấp bản sao/dán thời gian biên dịch thay thế .. Đặc điểm có phải là từ khóa PHP không?Định nghĩa và sử dụng Từ khóa đặc điểm được sử dụng để tạo các đặc điểm.Đặc điểm là một cách để cho phép các lớp kế thừa nhiều hành vi.The trait keyword is used to create traits. Traits are a way to allow classes to inherit multiple behaviours. |