Khi bạn đang gọi một hàm hoặc phương thức có (các) đối số, không phải lúc nào bạn cũng biết loại đối số nào (mảng, đối tượng, chuỗi, v.v.) để truyền vào hàm. Và nếu cuối cùng bạn chuyển sai loại, bạn sẽ nhận được một lỗi không hữu ích Show Để khắc phục điều này, bạn có thể sử dụng gợi ý loại để cải thiện độ rõ ràng của mã và cải thiện lỗi. Gợi ý kiểu cho phép bạn chỉ định các kiểu dữ liệu mà bạn mong đợi cho một đối số cho một khai báo hàm. Bạn có thể chỉ định các loại dữ liệu như mảng, đối tượng và giao diện. Gợi ý kiểu là tùy chọn, nhưng nó giúp gỡ lỗi mã của bạn dễ dàng hơn và cho phép IDE của bạn cung cấp tính năng tự động hoàn thành cùng với các lợi ích khác Xét ví dụ đơn giản sau
Điều này sẽ in chuối và dâu ra màn hình Nhưng không rõ ngay rằng đối số $ingredients trong hàm shake phải là một mảng. Vậy điều gì xảy ra nếu bạn chuyển vào một chuỗi?
Bạn sẽ nhận được lỗi sau
Lỗi đang tham chiếu foreach vì bạn đã cố truyền cho nó một chuỗi khi nó đang mong đợi một mảng Để sử dụng gợi ý kiểu với ví dụ này, hãy thêm kiểu ngày vào đối số hàm. Trong trường hợp này, kiểu dữ liệu là mảng
Sau đó, nếu bạn chuyển vào chuỗi, bạn sẽ nhận được một lỗi có ý nghĩa hơn
Lỗi là bây giờ
Điều này rất có ý nghĩa và cho bạn biết chính xác vấn đề là gì và nó đang ở đâu Gợi ý loại đối tượngBạn cũng có thể chỉ định một lớp hoặc giao diện làm gợi ý kiểu Xem xét triển khai Drupal sau đây của hook_form_alter()
Bây giờ bạn có tên hiển thị từ tài khoản $. Nhưng bạn phải biết rằng getDisplayName() là một phương thức khả dụng May mắn thay, có một cách dễ dàng hơn nếu bạn sử dụng gợi ý kiểu và một IDE như PHPStorm Nếu bạn bao gồm một lớp cơ sở hoặc giao diện cho biến $account, IDE của bạn sẽ cho bạn biết các phương thức và thuộc tính có sẵn Thêm gợi ý kiểu 'AccountInterface' vào hàm welcome_user_login()
Và bây giờ khi bạn bắt đầu nhập $account-> , IDE sẽ cung cấp cho bạn tính năng tự động hoàn thành Thêm một tuyên bố sử dụngBạn cũng có thể bao gồm một tuyên bố sử dụng trong tệp 4 để bạn có thể tham khảo 'AccountInterface' thay vì hệ thống phân cấp không gian tên đầy đủỞ đầu tệp 4, hãy thêm câu lệnh sử dụng sau
Thay đổi đối số chức năng
Đặt tất cả những thứ này lại với nhau, welcome_user_login() hiện là ________số 8kết thúcSử dụng gợi ý kiểu trong mã của bạn giúp mã rõ ràng hơn và ít bị lỗi hơn, cải thiện các lỗi bạn gặp phải và cũng hỗ trợ tự động hoàn thành. Gợi ý kiểu chưa phải là một phần của tiêu chuẩn mã Drupal (vì vậy chúng không bắt buộc đối với mã lõi và mã được đóng góp), nhưng bạn có thể tìm thấy rất nhiều ví dụ trong mã lõi Gợi ý kiểu là khai báo kiểu cho đối số hàm, giá trị trả về và thuộc tính lớp. PHP đảm bảo giá trị thuộc cùng loại mà bạn đã khai báo hoặc ném TypeError. Không bắt buộc nhưng rất hữu ích để bắt lỗi và hữu ích cho những người khác đọc mã của bạn để hiểu điều gì đang xảy ra đối số chức năngĐể gõ gợi ý thông báo đối số chức năng của chúng tôi về lỗi phương thức của chúng tôi, chúng tôi sẽ thêm chuỗi ngay trước đối số của chúng tôi
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Điều này đảm bảo rằng bất cứ thứ gì được truyền vào phương thức của chúng ta, 6 luôn là một loại chuỗi hoặc một lỗi được đưa raGiá trị trả vềĐiều này cũng làm việc cho phản ứng của chúng tôi. Trong trường hợp này, chúng tôi hy vọng phương thức của chúng tôi sẽ trả về một chuỗi và vì vậy chúng tôi thêm 7 sau đối số của chúng tôi 0Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Bất cứ điều gì chúng ta sẽ chuyển đến phương thức lỗi của mình dưới dạng đối số (chuỗi, số nguyên, boolean, mảng, v.v. ), lợi nhuận của chúng tôi phải luôn là một loại chuỗi nếu không sẽ xảy ra lỗi Thuộc tính lớpBên cạnh các phương thức, chúng ta cũng có thể gõ gợi ý các thuộc tính của mình. Trong trường hợp tin nhắn của chúng tôi, chúng tôi thêm chú thích 8 1Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Điều này đảm bảo rằng bất cứ khi nào chúng ta gọi thuộc tính này thì nó phải là một loại chuỗi hoặc một lỗi được đưa ra Tất cả các loại gợi ý với nhauNếu chúng tôi lưu các thông báo ghi nhật ký trong cơ sở dữ liệu của mình và chúng tôi muốn tạo getters và setters cho thông báo của mình, chúng tôi có thể sử dụng cả 3 loại gợi ý loại như sau 2Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Tôi đã gõ gợi ý thuộc tính 6, đối số là chuỗi và thêm kết quả mong đợi là một chuỗi cho phương thức 0. Đối với phương pháp 1, tôi đã thêm kết quả dự kiến là 00. Điều này có nghĩa là chúng tôi không mong đợi bất cứ điều gì cho phương pháp này, điều này là do trình thiết lập sẽ chỉ đặt thuộc tính của chúng tôi và không trả lại cho chúng tôi bất kỳ thứ gìLoại phương pháp gợi ýMột số cũng sẽ gõ gợi ý các phương thức của họ, tương tự như thuộc tính của chúng ta, nhưng điều này là không cần thiết vì chúng ta đã gõ gợi ý thuộc tính, đối số và phản hồi của mình Loại được gợi ý là gì?Danh từ. (lập trình) Đặc điểm kỹ thuật của các loại dữ liệu bằng ngôn ngữ không được nhập, để thực thi các biến có một loại cụ thể .
Gợi ý kiểu được thêm vào PHP khi nào?Vào tháng 5 năm 2010 hỗ trợ cho gợi ý loại vô hướng đã được thêm vào thân PHP.
Khai báo kiểu còn được gọi là gợi ý kiểu là gì?Gợi ý loại là một giải pháp chính thức để chỉ định tĩnh loại giá trị trong mã Python của bạn . Nó được chỉ định trong PEP 484 và được giới thiệu trong Python 3. 5. Đây là một ví dụ về việc thêm thông tin loại vào một chức năng.
PHP có loại an toàn không?Giới học thuật thường nói đó là thuộc tính của một ngôn ngữ nhất định. trình biên dịch của ngôn ngữ đó có cấm lỗi kiểu khi thực thi chương trình không? . PHP will never be type safe (PHP's compiler hardly prohibits any type errors). |