Đôi khi có thể cần một biến tĩnh trong hàm PHP; . [Nếu hàm được chứa trong một lớp, tốt hơn bạn nên sử dụng biến lớp riêng hoặc lớp được bảo vệ thay vì biến tĩnh bên trong hàm]
Ví dụ mã PHP
Ví dụ mã PHP bên dưới hiển thị một hàm sử dụng biến tĩnh. Khi hàm được gọi lần đầu, nó sẽ không có giá trị được đặt nên nó được khởi tạo với bit = 0 và sau đó tăng dần trong mỗi lần gọi tiếp theo. Lưu ý rằng nó không cần phải là một số nguyên;
Các hàm tĩnh và các lớp tĩnh có thể dễ dàng truy cập mà không nhất thiết phải tạo một thể hiện của lớp đó. Điều này giúp giữ cho mã của bạn sạch sẽ và có tổ chức
Trong bài đăng này, bạn sẽ tìm hiểu về từ khóa
MyClass::someStaticMethod[];0 và cách nó được áp dụng cho các hàm và lớp để làm cho chúng trở nên tĩnh. Sau đó, tôi sẽ giải thích lý do tại sao bạn có thể muốn triển khai các hàm và lớp tĩnh trong PHP
Cuối cùng, bạn sẽ hiểu cách tạo các hàm và biến trong một lớp tĩnh, cách truy cập các thành viên tĩnh này và khi nào khai báo các thành viên lớp là tĩnh
Sử dụng từ khóa MyClass::someStaticMethod[];
0 với phương thức hoặc biến
MyClass::someStaticMethod[];0 là một từ khóa đặc biệt trong PHP. Khi nó được sử dụng trên các phương thức hoặc thuộc tính của lớp, nó cho phép chúng được truy cập trên chính lớp đó thay vì trên một thể hiện của lớp cụ thể đó. Vì vậy, thay vì viết
$object = new MyClass[]; $object.someMethod[];
Chúng tôi có thể viết
MyClass::someStaticMethod[];
Do đó, bất cứ khi nào một phương thức được khai báo là tĩnh, nó có thể dễ dàng được truy cập mà không cần tạo đối tượng cho lớp
Tất nhiên, điều này chỉ hoạt động đối với các phương thức không cần sử dụng bất kỳ dữ liệu nào từ các thể hiện của một lớp. Khai báo một phương thức là tĩnh giới hạn nó để truy cập các phương thức tĩnh và các biến tĩnh
Khai báo một hàm tĩnh và một biến tĩnh
Đoạn mã dưới đây khai báo một hàm có tên
MyClass::someStaticMethod[];3 là tĩnh bằng cách thêm từ khóa
MyClass::someStaticMethod[];0 trước tên của hàm. Thuộc tính có tên
MyClass::someStaticMethod[];5 cũng được tạo tĩnh bằng cách bao gồm từ khóa
MyClass::someStaticMethod[];0 trước tên của nó. Khi tham chiếu thuộc tính trong hàm tĩnh, toán tử phân giải phạm vi
MyClass::someStaticMethod[];7 và từ khóa
MyClass::someStaticMethod[];8 được sử dụng
Một phương thức tĩnh không thể truy cập một biến không tĩnh hoặc các phương thức không tĩnh vì chúng yêu cầu một thể hiện của lớp được tạo
MyClass::someStaticMethod[];1
Đầu ra cho đoạn mã trên sẽ là
MyClass::someStaticMethod[];2
Tuy nhiên, một phương thức tĩnh có thể được truy cập bằng một phương thức không tĩnh trong cùng một lớp bằng cách sử dụng
MyClass::someStaticMethod[];9
MyClass::someStaticMethod[];4
Khi bạn tạo một thể hiện mới của lớp, hàm tạo sẽ gọi hàm tĩnh và xuất ra
MyClass::someStaticMethod[];10
Bạn cũng có thể truy cập một phương thức tĩnh trong một lớp từ một lớp khác bằng cách đặt phương thức tĩnh ở chế độ công khai
MyClass::someStaticMethod[];6
Mã này sẽ xuất ra
MyClass::someStaticMethod[];7
Một phương thức tĩnh cũng có thể được gọi từ một lớp con [khái niệm kế thừa] bằng cách sử dụng từ khóa
MyClass::someStaticMethod[];11 trong lớp con. Trong trường hợp này, phương thức tĩnh có thể là công khai hoặc được bảo vệ
Nếu bạn muốn sử dụng một phương thức tĩnh trong các lớp con, nhưng không phải từ bên ngoài lớp, bạn có thể khai báo phương thức đó bằng từ khóa
MyClass::someStaticMethod[];12
MyClass::someStaticMethod[];0
Trong đoạn mã trên, lớp con—
MyClass::someStaticMethod[];13—kế thừa từ lớp cha
MyClass::someStaticMethod[];14. Trong lớp con là một biến được khai báo công khai được truy cập trong phương thức khởi tạo không tĩnh
MyClass::someStaticMethod[];15. Phương thức tĩnh
MyClass::someStaticMethod[];16 sau đó được truy cập bằng
MyClass::someStaticMethod[];17. Địa chỉ IP được trả về làm đầu ra
lớp tĩnh
Về cơ bản, một lớp là một kiểu dữ liệu độc lập và khép kín có thể chứa các thành viên dữ liệu được gọi là thuộc tính và hàm thành viên chỉ có thể được truy cập bằng cách khởi tạo một thể hiện của lớp đó
Khai báo một lớp là tĩnh cho phép các giá trị mà nó giữ nguyên cho mọi phiên bản của lớp đó. Mặt khác, một lớp không tĩnh có thể có các giá trị thuộc tính khác nhau cho từng trường hợp
Cách tạo một lớp tĩnh
Một lớp trở nên tĩnh khi các biến và phương thức được định nghĩa bên trong nó được tạo thành tĩnh bằng cách sử dụng từ khóa tĩnh
Một lớp tĩnh và [các] phương thức tĩnh được xác định của nó có thể được truy cập bằng cách sử dụng tên lớp, toán tử
MyClass::someStaticMethod[];7 [độ phân giải phạm vi] và tên phương thức, như được hiển thị trong đoạn trích bên dưới
MyClass::someStaticMethod[];7____28
Trong chương trình trên, chúng ta đã biến cả biến
MyClass::someStaticMethod[];19 và hàm
MyClass::someStaticMethod[];20 thành tĩnh. Hãy nhớ rằng, bạn chỉ có thể truy cập các biến tĩnh từ các hàm tĩnh và theo cách đó, chúng ta sẽ không phải khởi tạo lớp tại bất kỳ thời điểm nào. Thực sự dễ dàng hơn rất nhiều khi làm việc với các biến và hàm tĩnh theo nghĩa là chức năng chung được cung cấp và thông tin được sử dụng không dành riêng cho một học sinh. Lưu ý rằng khi truy cập các biến
MyClass::someStaticMethod[];21 và
MyClass::someStaticMethod[];22 không tĩnh, chúng tôi đã trả về chúng bằng cách sử dụng từ khóa
MyClass::someStaticMethod[];23 và mũi tên
MyClass::someStaticMethod[];24 để ngụ ý rằng chúng là các thể hiện của lớp
MyClass::someStaticMethod[];25
Vì vậy, về cơ bản, sự khác biệt chính giữa các thành viên tĩnh và các lớp, phương thức và biến thông thường khi chúng được truy cập là việc sử dụng dấu hai chấm
MyClass::someStaticMethod[];7 thay vì toán tử mũi tên
MyClass::someStaticMethod[];24
Sự kết luận
Trong bài viết này, bạn đã học cách sử dụng các hàm tĩnh và lớp tĩnh, đồng thời hy vọng bạn sẽ quan tâm đến việc tìm hiểu thêm về các khái niệm này trong tương lai. Khái niệm tĩnh trong PHP và mọi thứ liên quan đến nó sẽ rõ ràng hơn bao giờ hết. Mã hóa vui vẻ