Hướng dẫn what is the difference between static and final in php? - sự khác biệt giữa static và final trong php là gì?

final

Các phương pháp hoặc lớp không thể được sửa đổi bởi một lớp trẻ. Điều này ngăn chặn sự kế thừa của lớp, áp dụng phương pháp và/hoặc xác định lại các phương pháp.methods or classes can not be modified by a child class. This prevents class inheritance, method-overriding and/or redefinition of methods.

Chỉ các định nghĩa lớp và/hoặc phương thức bên trong một lớp mới có thể được định nghĩa là final.

static

Khai báo các phương thức hoặc thuộc tính lớp là giá trị tĩnh để bạn có quyền truy cập vào chúng mà không cần khởi tạo một đối tượng. Chúng được chia sẻ giữa cha mẹ và lớp con.methods or properties as a static value so that you have access to them without instantiating an object. These are shared between parent and child-classes.

Một định nghĩa lớp không thể là static không giống như final.

const

Chúng tạo ra một giá trị không đổi cho một lớp. Các giá trị không đổi sẽ được thay đổi và không thể thay đổi bằng phương pháp trong phụ huynh hoặc lớp con.

Hằng số lớp được phân bổ cho mỗi trường hợp của lớp.


const là một nhà xác định loại trong chính nó. Nó không thể được đặt cùng với ____ 9/________ 10/________ 4, v.v. áp dụng với tất cả chúng. static không thể được áp dụng cho các định nghĩa lớp nhưng có thể được sử dụng cho các thuộc tính lớp.

CẬP NHẬT

Bộ điều chỉnh được phép cho các hằng số lớp kể từ Php 7.1.0.

class Foo {
    public const bar = 5;
    private const baz = 6;
}

Tóm lại,

class X {
    final static x = 5;
}
4 không thể được sử dụng để xác định một cái gì đó như::

class X {
    final static x = 5;
}

Đó là lý do tại sao bạn có một const.

Bài viết này chủ yếu giới thiệu tĩnh, cuối cùng, giao diện, trừu tượng về sự khác biệt trong PHP, có một giá trị tham chiếu nhất định, bây giờ chia sẻ cho mọi người, nhu cầu bạn bè có thể tham khảo

Cuối cùng

Nếu một phương thức trong lớp cha được khai báo cuối cùng, lớp con không thể ghi đè lên phương thức. Nếu một lớp được khai báo cuối cùng, nó không thể được kế thừa.

Lưu ý: Các thuộc tính không thể được định nghĩa là cuối cùng, chỉ các lớp và phương thức có thể được định nghĩa là cuối cùng.

Tĩnh

Một biến tĩnh có thể là một biến cục bộ hoặc biến toàn cầu, khi một phân đoạn chương trình được hoàn thành, biến tĩnh không biến mất, nó vẫn tồn tại trong bộ nhớ, lần tiếp theo trong định nghĩa hoặc giá trị trước đó, thường được sử dụng trong đệ quy hoặc phụ -F Chế độ giữ lại giá trị trước đó, có thể được sử dụng để xác định các biến và phương thức, chế độ singleton cũng được sử dụng điều này;

1. Các thuộc tính tĩnh chung được sử dụng để giữ dữ liệu công khai của lớp

2, Phương thức tĩnh chỉ có thể truy cập các thuộc tính tĩnh, bao gồm lớp và lớp cha

3, các thành viên tĩnh không cần phải khởi tạo đối tượng có thể được truy cập

4. Truy cập các thuộc tính tĩnh bên trong lớp này được truy cập bằng từ khóa tự hoặc từ khóa tĩnh và các biến ở mặt sau bao gồm $, ví dụ: tự: $ a hoặc tĩnh :: $ a

5. Truy cập thuộc tính tĩnh của lớp cha bằng cha mẹ, chẳng hạn như: cha mẹ :: $ name

6. Truy cập các biến hoặc phương thức tĩnh bên ngoài lớp bằng cách sử dụng trực tiếp tên lớp mà không cần khởi tạo. chẳng hạn như: tôi :: $ pan và tôi :: abc ()

trừu tượng

Lớp học trừu tượng

1. Một lớp trừu tượng là một lớp có từ khóa trừu tượng trước lớp và phương thức trừu tượng (thêm từ khóa trừu tượng trước từ khóa chức năng Phương thức lớp).

2. Các lớp trừu tượng không thể được khởi tạo trực tiếp. Chỉ các phương pháp cần thiết để xác định (hoặc thực hiện một phần) các lớp con trong một lớp trừu tượng. Các lớp con có thể làm cho các lớp trừu tượng hóa được thành hiện thực bằng cách kế thừa các lớp trừu tượng và bằng cách thực hiện tất cả các phương thức trừu tượng trong lớp trừu tượng.

3. Nếu một lớp con cần được khởi tạo, nó sẽ thực hiện tất cả các phương thức trừu tượng trong lớp trừu tượng. Nếu lớp con không thực hiện đầy đủ tất cả các phương thức trừu tượng trong lớp trừu tượng, thì lớp con là một lớp trừu tượng phải đi trước lớp với từ khóa trừu tượng và không thể được khởi tạo.

4

(1) Nếu Tóm tắt_func () trong A được khai báo công khai

.

(3) Nếu Tóm tắt_func () trong A được khai báo riêng tư, nó không thể được định nghĩa là riêng tư! (Lỗi chết người: Hàm trừu tượng A :: Tóm tắt_func ()Fatal error : Abstract function A::abstract_func () cannot be declared private)

Giao diện

1. Các lớp trừu tượng cung cấp một triển khai cụ thể của tiêu chuẩn và giao diện hoàn toàn là một mẫu. Giao diện chỉ xác định chức năng, không phải nội dung của việc triển khai. Giao diện được khai báo với giao diện từ khóa.

2. Giao diện hoàn toàn trừu tượng, chỉ có thể khai báo các phương thức và chỉ có thể khai báo các phương thức công khai, không thể khai báo các phương thức riêng tư và được bảo vệ, không thể xác định các cơ quan phương thức và không thể khai báo các biến thể hiện.

3. Giao diện có thể khai báo các biến không đổi. Nhưng việc đặt biến không đổi trong giao diện vi phạm mục đích của nó là một giao diện và nó nhầm lẫn giá trị khác nhau của giao diện và lớp. Nếu bạn thực sự cần nó, bạn có thể đặt nó vào lớp hoặc lớp trừu tượng thích hợp.

4. Bất kỳ lớp nào thực hiện một giao diện thực hiện tất cả các phương thức được xác định trong giao diện, nếu không lớp phải được khai báo trừu tượng.

5. Một lớp có thể sử dụng từ khóa thực hiện trong một tuyên bố để thực hiện giao diện. Sau khi làm như vậy, quá trình chính xác thực hiện giao diện giống như kế thừa một lớp trừu tượng chỉ chứa các phương thức trừu tượng.

6. Một lớp có thể kế thừa một lớp cha và triển khai bất kỳ số lượng giao diện nào cùng một lúc. Các mệnh đề mở rộng sẽ đi trước Điều khoản thực hiện. PHP chỉ hỗ trợ kế thừa từ lớp cha, vì vậy từ khóa mở rộng chỉ có thể được theo sau bởi một tên lớp.

7. Các giao diện không thể triển khai giao diện khác, nhưng có thể kế thừa nhiều

Iii. Sự tương đồng và khác biệt của các lớp và giao diện trừu tượng

1. cùng một điểm:

(1) Cả hai đều là các lớp trừu tượng và không thể được khởi tạo.

(2) Lớp con của lớp triển khai giao diện và lớp trừu tượng phải thực hiện một phương pháp trừu tượng đã được khai báo.

2. Các điểm khác nhau:

(1) Giao diện cần thực hiện, sử dụng các dụng cụ và lớp trừu tượng cần phải thừa hưởng, sử dụng mở rộng.

(2) Một lớp có thể triển khai nhiều giao diện, nhưng một lớp chỉ có thể kế thừa một lớp trừu tượng.

(3) Giao diện nhấn mạnh việc thực hiện một chức năng cụ thể, trong khi lớp trừu tượng nhấn mạnh vào liên kết của nó.

(4) Mặc dù lớp con của lớp triển khai giao diện và lớp trừu tượng phải thực hiện phương pháp trừu tượng tương ứng, việc triển khai là khác nhau về hình thức. Mỗi phương thức trong giao diện là một phương thức trừu tượng, tất cả chỉ được khai báo (khai báo, không có cơ thể phương thức), lớp thực hiện phải được thực hiện. Lớp con của lớp trừu tượng có thể được thực hiện có chọn lọc.

Tùy chọn này có hàm ý hai điểm:

A) Không phải tất cả các phương pháp trong lớp trừu tượng đều trừu tượng, chỉ những phương pháp có vương miện có bản tóm tắt được trừu tượng hóa và phải thực hiện các lớp con. Những phương pháp không trừu tượng phải xác định cơ thể phương pháp trong lớp trừu tượng;

b) Khi lớp con của lớp trừu tượng được thừa hưởng từ nó, phương pháp không phải là người không được thừa kế trực tiếp hoặc ghi đè, trong khi đối với một phương pháp trừu tượng, bạn có thể chọn thực hiện nó hoặc để lại cho các lớp con của nó, nhưng lớp này cũng phải được tuyên bố là một lớp trừu tượng. Các lớp trừu tượng, và tất nhiên, không thể được khởi tạo.

(5) Lớp trừu tượng là một trung gian giữa giao diện và lớp. Lớp trừu tượng đóng vai trò kết nối trong giao diện và lớp.

Một mặt, lớp trừu tượng là trừu tượng và có thể được sử dụng để khai báo các phương thức trừu tượng để chuẩn hóa các chức năng mà các lớp con phải thực hiện;

Mặt khác, nó có thể xác định thân phương thức mặc định cho lớp con sử dụng hoặc ghi đè trực tiếp. Ngoài ra, nó có thể xác định các biến thể hiện riêng của nó để sử dụng bởi các lớp con thông qua kế thừa.

. Các phương pháp trừu tượng trong các lớp trừu tượng phải được đi trước bởi một biểu diễn trừu tượng để hiển thị tuyên bố là một sự trừu tượng.

(7) Phương pháp trừu tượng trong giao diện được công khai theo mặc định và chỉ có thể được công khai và không thể được trang trí với công cụ sửa đổi riêng tư, được bảo vệ. Các phương pháp trừu tượng trong các lớp trừu tượng có thể được sửa đổi với công khai, được bảo vệ, nhưng không riêng tư.

3. Ứng dụng giao diện

(1) Các lớp và lớp yêu cầu một giao diện cụ thể để điều hòa, bất kể chúng được thực hiện như thế nào.

(2) Là một danh tính có khả năng đạt được một chức năng cụ thể, nó cũng có thể là một định danh thuần túy về phương thức giao diện không tồn tại.

(3) Một tập hợp các lớp cần được coi là một lớp duy nhất và người gọi chỉ được kết nối với tập hợp các lớp này thông qua một giao diện.

(4) Một số lượng chức năng cụ thể cần được thực hiện và có thể không có kết nối giữa các tính năng này.

4. Áp dụng lớp trừu tượng

Trong một từ, nó có thể được sử dụng trong các tình huống trong đó cả giao diện thống nhất là bắt buộc và một biến thể hiện hoặc một phương thức mặc định là bắt buộc. Phổ biến nhất là:

(1) Xác định một tập hợp các giao diện, nhưng không muốn buộc từng lớp triển khai để thực hiện tất cả các giao diện. Bạn có thể sử dụng lớp trừu tượng để xác định một tập hợp các thân phương thức, thậm chí là một thân phương thức trống, sau đó chọn các phương thức mà bạn quan tâm để ghi đè bởi các lớp con.

(2) Trong một số trường hợp, các giao diện hoàn toàn không thỏa mãn sự phối hợp giữa các lớp và lớp và các biến đại diện cho các trạng thái trong một lớp phải phân biệt giữa các mối quan hệ khác nhau. Hòa giải trừu tượng có thể là một cách tốt để đáp ứng điểm này.

.

Trên đây là toàn bộ nội dung của bài viết này, tôi hy vọng rằng việc học của mọi người đã giúp ích, nội dung phù hợp hơn, vui lòng chú ý đến chủ đề.alibabacloud.com!

Sự khác biệt giữa tĩnh và cuối cùng là gì?

Từ khóa tĩnh có nghĩa là giá trị giống nhau cho mọi trường hợp của lớp. Từ khóa cuối cùng có nghĩa là một khi biến được gán một giá trị mà nó không bao giờ có thể thay đổi. Sự kết hợp của cuối cùng tĩnh trong Java là làm thế nào để tạo ra một giá trị không đổi. The final keyword means once the variable is assigned a value it can never be changed. The combination of static final in Java is how to create a constant value.

Từ khóa cuối cùng và tĩnh trong PHP là gì?

Tĩnh cuối cùng khai báo một phương thức tĩnh (có thể được gọi mà không có một thể hiện của lớp) và cuối cùng (không thể bị ghi đè bởi các lớp con).Chỉ một mình tĩnh có thể được sử dụng để xác định biến số lớp, không đổi (nhưng các biến không thể là cuối cùng).. static alone can be used to define a class-scoped variable, which isn't constant (but variables can't be final ).

Tĩnh trong PHP là gì?

Từ khóa tĩnh được sử dụng để khai báo các thuộc tính và phương thức của một lớp là tĩnh.Các thuộc tính và phương thức tĩnh có thể được sử dụng mà không tạo ra một thể hiện của lớp.Từ khóa tĩnh cũng được sử dụng để khai báo các biến trong một hàm giữ giá trị của chúng sau khi hàm kết thúc.used to declare properties and methods of a class as static. Static properties and methods can be used without creating an instance of the class. The static keyword is also used to declare variables in a function which keep their value after the function has ended.

Sự khác biệt giữa cuối cùng tĩnh và const là gì?

Sự khác biệt duy nhất giữa cuối cùng và const là const làm cho biến không đổi từ thời gian biên dịch.Sử dụng const trên một đối tượng, làm cho toàn bộ trạng thái sâu của đối tượng cố định nghiêm ngặt vào thời gian biên dịch và đối tượng với trạng thái này sẽ được coi là đóng băng và hoàn toàn bất biến.const makes the variable constant from compile-time only. Using const on an object, makes the object's entire deep state strictly fixed at compile-time and that the object with this state will be considered frozen and completely immutable.