Chế độ nghiêm ngặt PHP

Vào tháng 12 năm 2015, PHP 7 đã giới thiệu các khai báo kiểu vô hướng và cùng với nó là cờ kiểu nghiêm ngặt. Tính năng mới này là gì?

Điểm hay của việc khai báo tệp PHP là nghiêm ngặt là nó thực sự chỉ áp dụng cho tệp hiện tại. Nó đảm bảo rằng tệp này có các loại nghiêm ngặt, nhưng nó không áp dụng cho bất kỳ tệp nào khác trong toàn bộ dự án. Nó cho phép bạn thực hiện, từng bước, việc di chuyển này từ mã không nghiêm ngặt sang mã nghiêm ngặt, đặc biệt đối với các tệp hoặc dự án mới

Để bật chế độ nghiêm ngặt, một lệnh khai báo phải được đặt ở đầu tệp. Điều này có nghĩa là mức độ nghiêm ngặt của việc gõ cho vô hướng được định cấu hình trên cơ sở từng tệp. Lệnh này không chỉ ảnh hưởng đến khai báo kiểu của tham số mà còn ảnh hưởng đến kiểu trả về của hàm

Các loại nghiêm ngặt ảnh hưởng đến các loại cưỡng chế

Sử dụng loại gợi ý mà không có strict_types có thể dẫn đến các lỗi tinh vi

Không có điều này, int $x có nghĩa là $x must have a value coercible to an int. Bất kỳ giá trị nào có thể bị ép buộc đối với một int sẽ chuyển loại gợi ý, bao gồm

  • một int thích hợp [ví dụ. 42 -> 42]
  • một float [ví dụ. 13. 1459 -> 13]
  • một bool [ví dụ. đúng -> 1]
  • một null [ví dụ. không -> 0]
  • một string với các chữ số đứng đầu [ví dụ. “15 Cây” -> 15]

Bằng cách đặt strict_types=1, bạn nói với công cụ rằng int $x có nghĩa là $x chỉ phải là một kiểu int thích hợp, không cho phép ép buộc kiểu. Bạn có sự đảm bảo tuyệt vời rằng bạn đang nhận được chính xác và chỉ những gì được cung cấp, không có bất kỳ chuyển đổi hoặc tổn thất tiềm năng nào

Ai nên quan tâm đến dòng "loại nghiêm ngặt" này?

Trên thực tế, hãy khai báo [strict_types=1]; . Tại sao?

  • Các loại trong phạm vi hiện tại [tệp/lớp] được xử lý nghiêm ngặt

'strict_types=1' dành cho người đọc hơn là người viết

Người viết chỉ cần duy trì sự chặt chẽ như vậy trong khi viết hành vi dự kiến. Điều đó nói rằng, với tư cách là một nhà văn, bạn nên quan tâm đến độc giả của mình, điều này cũng bao gồm cả bản thân bạn trong tương lai. Bởi vì bạn sẽ là một trong số họ

Đôi khi trang web của bạn sẽ báo lỗi PHP sau khi nâng cấp hoặc di chuyển trang web mà trước đây không có. Một trong những lỗi phổ biến hơn mà chúng tôi thấy với Hệ thống quản lý nội dung là lỗi tiêu chuẩn nghiêm ngặt. Nó thường xuất hiện ở đầu trang và trông giống như sau từ trang Joomla

Strict Standards: Non-static method JLoader::import[] should not be called statically in  on line 34

Lỗi này đặc biệt có vẻ khó hiểu vì nó không có trong thiết lập trước đó của bạn. Đừng sợ, cái này không có gì ghê gớm và dễ chăm sóc

Lỗi tiêu chuẩn nghiêm ngặt là gì?

Đây không phải là một thông báo 'lỗi' thực sự mà chỉ là một thông báo cung cấp thông tin có ý nghĩa hơn đối với các nhà phát triển. Điều đó không có nghĩa là mã cần phải được thay đổi trong tập lệnh của bạn

Tại sao bạn nhận được thông báo tiêu chuẩn nghiêm ngặt

Cài đặt E_STRICT không được bao gồm trong cài đặt nhóm E_ALL cho đến phiên bản PHP 5. 4, vì vậy nó phải được đặt rõ ràng để báo cáo các tin nhắn. Trong hầu hết các trường hợp, đây không phải là một phần của cài đặt mặc định nên nó không hiển thị. Kể từ ngày 5. 4, tuy nhiên, E_ALL đã bao gồm E_STRICT để nó hiện hiển thị trừ khi bị loại trừ cụ thể. Nếu bạn đến từ một máy chủ có phiên bản PHP thấp hơn 5. 4, đây có thể là lý do tại sao lỗi hiển thị trên trang web của bạn với máy chủ của chúng tôi và không hiển thị trên máy chủ cũ

Cách xóa thông báo 'Tiêu chuẩn nghiêm ngặt'

  1. Đăng nhập vào bảng điều khiển cPanel của bạn
  2. Tìm mục Files và click vào biểu tượng File Manager

  3. Khi ở trong Trình quản lý tệp, hãy điều hướng đến tệp php. ini và mở nó để chỉnh sửa. Nếu bạn không có php. ini, vui lòng liên hệ với bộ phận Hỗ trợ trực tiếp để họ có thể đặt một tệp vào tài khoản của bạn cho bạn

  4. Bên trong php. ini, tìm phần báo cáo lỗi và sau đó tìm cài đặt cụ thể của bạn. Nó sẽ là cái không có dấu chấm phẩy ‘;’ phía trước

    Chế độ nghiêm ngặt có thể được bật để thực thi gợi ý loại cho các loại vô hướng; . php và cũng sẽ áp dụng để bao gồm các tệp

    752 lượt xem

    Bởi. Jacob

    Đã chỉnh sửa. 2021-02-14 01. 50

    Chế độ nghiêm ngặt có thể được bật để thực thi gợi ý loại cho các loại vô hướng; . Thay vào đó, với chế độ nghiêm ngặt được bật, PHP sẽ đưa ra lỗi và tạm dừng thực thi tập lệnh

    Có thể thêm khai báostrict_types=1 ở đầu thư mục gốc của thành phần của bạn [I. e. chỉ số của bạn. php] để áp dụng lệnh trên quy mô toàn cầu cho dự án của bạn, điều này được thực hiện bằng cách sử dụng cấu trúc khai báo của PHP

    Để bật chế độ nghiêm ngặt cho các loại vô hướng, bạn sẽ cần bao gồm một lệnh khai báo duy nhất ở đầu chỉ mục của mình. php

Chủ Đề