Thêm lớp css php
Các định nghĩa lớp cơ bản bắt đầu bằng từ khóa $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 274, theo sau là tên lớp, tiếp theo là một cặp dấu ngoặc nhọn bao quanh các định nghĩa về thuộc tính và phương thức thuộc về lớp Tên lớp có thể là bất kỳ nhãn hợp lệ nào, miễn là nó không phải là từ dành riêng cho PHP. Tên lớp hợp lệ bắt đầu bằng một chữ cái hoặc dấu gạch dưới, theo sau là bất kỳ số lượng chữ cái, số hoặc dấu gạch dưới nào. Là một biểu thức chính quy, nó sẽ được thể hiện như vậy. $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 270 Một lớp có thể chứa các hằng, biến (được gọi là "thuộc tính") và hàm (được gọi là "phương thức") của riêng nó Ví dụ #1 Định nghĩa lớp đơn giản $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 271 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 272 Biến giả $this khả dụng khi một phương thức được gọi từ bên trong ngữ cảnh đối tượng. $đây là giá trị của đối tượng gọi Cảnh báo Gọi một phương thức không tĩnh sẽ gây ra Lỗi tĩnh. Trước PHP 8. 0. 0, điều này sẽ tạo ra một thông báo không dùng nữa và $this sẽ không được xác định Ví dụ #2 Một số ví dụ về biến giả $this $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 273 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 274 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 275 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 276 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 277 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 278 Đầu ra của ví dụ trên trong PHP 7 $this is defined (A) Deprecated: Non-static method A::foo() should not be called statically in %s on line 27 $this is not defined. Deprecated: Non-static method A::foo() should not be called statically in %s on line 20 $this is not defined. Deprecated: Non-static method B::bar() should not be called statically in %s on line 32 Deprecated: Non-static method A::foo() should not be called statically in %s on line 20 $this is not defined. Đầu ra của ví dụ trên trong PHP 8 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 27 lớp chỉ đọcKể từ PHP 8. 2. 0, một lớp có thể được đánh dấu bằng công cụ sửa đổi chỉ đọc. Đánh dấu một lớp là chỉ đọc sẽ thêm công cụ sửa đổi chỉ đọc vào mọi thuộc tính đã khai báo và ngăn việc tạo các thuộc tính động. Hơn nữa, không thể thêm hỗ trợ cho chúng bằng cách sử dụng thuộc tính AllowDynamicProperties. Cố gắng làm như vậy sẽ gây ra lỗi thời gian biên dịch $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 279 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2720 Vì không thể đánh dấu thuộc tính untyped, cũng như tĩnh bằng công cụ sửa đổi $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2721, nên các lớp chỉ đọc cũng không thể khai báo chúng $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2722 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2723 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2724 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2725 Một lớp chỉ đọc có thể được mở rộng nếu và chỉ khi lớp con cũng là một lớp chỉ đọc MớiĐể tạo một thể hiện của một lớp, phải sử dụng từ khóa $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2726. Một đối tượng sẽ luôn được tạo trừ khi đối tượng đó có một hàm tạo được xác định sẽ đưa ra một ngoại lệ do lỗi. Các lớp nên được xác định trước khi khởi tạo (và trong một số trường hợp, đây là một yêu cầu) Nếu một chuỗi chứa tên của một lớp được sử dụng với $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2726, một phiên bản mới của lớp đó sẽ được tạo. Nếu lớp nằm trong một không gian tên, tên đầy đủ của nó phải được sử dụng khi thực hiện việc này
Ví dụ #3 Tạo một thể hiện $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2728 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2729 Kể từ PHP 8. 0. 0, sử dụng $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2726 với các biểu thức tùy ý được hỗ trợ. Điều này cho phép khởi tạo phức tạp hơn nếu biểu thức tạo ra một chuỗi. Các biểu thức phải được bao bọc trong dấu ngoặc đơn Ví dụ #4 Tạo một thể hiện bằng một biểu thức tùy ý Trong ví dụ đã cho, chúng tôi hiển thị nhiều ví dụ về biểu thức tùy ý hợp lệ tạo ra tên lớp. Phần này hiển thị lời gọi hàm, nối chuỗi và hằng số $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2731 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2732 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2733 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2734 Đầu ra của ví dụ trên trong PHP 8 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 272 Trong ngữ cảnh lớp, có thể tạo một đối tượng mới bằng $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2735 và $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2736 Khi gán một thể hiện đã được tạo của một lớp cho một biến mới, biến mới sẽ truy cập vào cùng thể hiện với đối tượng đã được gán. Hành vi này giống nhau khi chuyển các thể hiện cho một hàm. Một bản sao của một đối tượng đã được tạo có thể được tạo bằng cách sao chép nó Ví dụ #5 Gán đối tượng $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2728 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2738 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2739 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2730 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2731 Ví dụ trên sẽ xuất ra $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 273 Có thể tạo các thể hiện của một đối tượng theo một số cách Ví dụ #6 Tạo đối tượng mới $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2732 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2733 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2734 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2735 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2736 Ví dụ trên sẽ xuất ra $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 273 Có thể truy cập một thành viên của một đối tượng mới được tạo trong một biểu thức Ví dụ #7 Truy cập thành viên của đối tượng mới tạo $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2737 Ví dụ trên sẽ xuất ra một cái gì đó tương tự như
Thuộc tính và phương thứcCác thuộc tính và phương thức của lớp nằm trong các "không gian tên" riêng biệt, vì vậy có thể có một thuộc tính và một phương thức có cùng tên. Việc đề cập đến cả một thuộc tính và một phương thức có cùng một ký hiệu và liệu một thuộc tính sẽ được truy cập hay một phương thức sẽ được gọi, chỉ phụ thuộc vào ngữ cảnh. e. việc sử dụng là truy cập biến hay gọi hàm Ví dụ #8 Quyền truy cập tài sản so với. gọi phương thức $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2738 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2739 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2750 Ví dụ trên sẽ xuất ra Điều đó có nghĩa là không thể trực tiếp gọi một chức năng ẩn danh đã được gán cho một thuộc tính. Thay vào đó, thuộc tính phải được gán cho một biến trước, chẳng hạn. Có thể gọi trực tiếp một thuộc tính như vậy bằng cách đặt nó trong dấu ngoặc đơn Ví dụ #9 Gọi một hàm ẩn danh được lưu trữ trong một thuộc tính $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2751 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2752 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2753 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2754 Ví dụ trên sẽ xuất ra mở rộngMột lớp có thể kế thừa các hằng, phương thức và thuộc tính của lớp khác bằng cách sử dụng từ khóa $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2755 trong phần khai báo lớp. Không thể mở rộng nhiều lớp; Các hằng, phương thức và thuộc tính kế thừa có thể được ghi đè bằng cách khai báo lại chúng với cùng tên được định nghĩa trong lớp cha. Tuy nhiên, nếu lớp cha đã định nghĩa một phương thức hoặc hằng số là cuối cùng, thì chúng có thể không bị ghi đè. Có thể truy cập các phương thức bị ghi đè hoặc thuộc tính tĩnh bằng cách tham chiếu chúng với cha
Ví dụ #10 Kế thừa lớp đơn giản $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2756 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2757 Ví dụ trên sẽ xuất ra $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 275 Quy tắc tương thích chữ kýKhi ghi đè một phương thức, chữ ký của nó phải tương thích với phương thức cha. Mặt khác, một lỗi nghiêm trọng được phát ra hoặc trước PHP 8. 0. 0, một lỗi cấp độ $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2758 được tạo ra. Chữ ký tương thích nếu nó tôn trọng các quy tắc phương sai, làm cho tham số bắt buộc trở thành tùy chọn và nếu có bất kỳ tham số mới nào là tùy chọn. Điều này được gọi là Nguyên tắc thay thế Liskov, viết tắt là LSP. Hàm tạo và các phương thức $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2759 được miễn trừ khỏi các quy tắc tương thích chữ ký này và do đó sẽ không phát ra lỗi nghiêm trọng trong trường hợp chữ ký không khớp Ví dụ #11 Các phương thức con tương thích $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2760 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2761 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2762 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2763 Ví dụ trên sẽ xuất ra Các ví dụ sau đây chứng minh rằng một phương thức con loại bỏ một tham số hoặc bắt buộc một tham số tùy chọn không tương thích với phương thức cha Ví dụ #12 Lỗi nghiêm trọng khi một phương thức con loại bỏ một tham số $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2764 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2765 Đầu ra của ví dụ trên trong PHP 8 tương tự như $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 276 Ví dụ #13 Lỗi nghiêm trọng khi một phương thức con bắt buộc tham số tùy chọn $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2764 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2767 Đầu ra của ví dụ trên trong PHP 8 tương tự như $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 275 Cảnh báo Đổi tên tham số của phương thức trong lớp con không phải là sự không tương thích về chữ ký. Tuy nhiên, điều này không được khuyến khích vì nó sẽ dẫn đến Lỗi thời gian chạy nếu các đối số được đặt tên được sử dụng Ví dụ #14 Lỗi khi sử dụng các tham số và đối số được đặt tên đã được đổi tên trong một lớp con $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2768 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2769 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2750 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2751 Ví dụ trên sẽ xuất ra một cái gì đó tương tự như $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 270 lớpTừ khóa $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 274 cũng được sử dụng để phân giải tên lớp. Để có được tên đủ điều kiện của một lớp $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2753, hãy sử dụng $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2754. Điều này đặc biệt hữu ích với các lớp được đặt tên Ví dụ #15 Độ phân giải tên lớp $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2755 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2756 Ví dụ trên sẽ xuất ra
Kể từ PHP 8. 0. 0, hằng số $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2731 cũng có thể được sử dụng trên các đối tượng. Độ phân giải này xảy ra trong thời gian chạy, không phải thời gian biên dịch. Tác dụng của nó giống như gọi get_class() trên đối tượng Ví dụ #17 Độ phân giải tên đối tượng $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2700 Ví dụ trên sẽ xuất ra Các phương thức và thuộc tính NullsafeKể từ PHP 8. 0. 0, các thuộc tính và phương thức cũng có thể được truy cập bằng toán tử "nullsafe" thay thế. $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2701. Toán tử nullsafe hoạt động giống như truy cập thuộc tính hoặc phương thức như trên, ngoại trừ nếu đối tượng được hủy đăng ký là $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2702 thì $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2702 sẽ được trả về thay vì ném ngoại lệ. Nếu dereference là một phần của chuỗi, phần còn lại của chuỗi sẽ bị bỏ qua Hiệu ứng này tương tự như gói từng quyền truy cập trong kiểm tra is_null() trước, nhưng nhỏ gọn hơn Ví dụ #18 Toán tử Nullsafe $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2704 $this is defined (A) Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27 Stack trace: #0 {main} thrown in %s on line 2705
|