Trong hướng dẫn này, chúng ta sẽ nghiên cứu về toán tử instanceof, toán tử instanceof kiểm tra xem một biến có phải là đối tượng khởi tạo của một lớp nào đó hay không. Các ví dụ trong hướng dẫn này sẽ làm cho nó rõ ràng hơn
Trong hướng dẫn này, chúng ta sẽ nghiên cứu về toán tử instanceof, toán tử instanceof kiểm tra xem một biến có phải là đối tượng khởi tạo của một lớp nào đó hay không. Các ví dụ trong hướng dẫn này sẽ làm cho nó rõ ràng hơnLoại toán tử
Đây là một loại toán tử khác, instanceof, toán tử này được sử dụng để kiểm tra một đối tượng xem đây có phải là đối tượng của lớp được chỉ định hay không
instanceof cũng có thể được dùng để xác định xem một đối tượng của một lớp có kế thừa thuộc tính từ một lớp khác hay không
Như bạn có thể thấy, kế thừa từ lớp này sang lớp khác là một cách vô cùng hiệu quả để xây dựng chức năng trong tập lệnh của bạn. Tuy nhiên, rất thường rất dễ bị lạc với tài sản kế thừa của bạn - làm thế nào bạn có thể biết một đối tượng đã cho thuộc lớp nào?
PHP giải cứu bằng một từ khóa đặc biệt, "instanceof", có thể được sử dụng như một toán tử. Ví dụ của sẽ trả về true nếu đối tượng ở phía bên trái thuộc cùng một lớp hoặc hậu duệ của lớp được đưa ra ở phía bên tay phải. Ví dụ: với mã $poppy = new poodle;
if [$poppy instanceof poodle] { }
if [$poppy instanceof dog] { }
Cả hai câu lệnh if đó đều được đánh giá là đúng, bởi vì $poppy là một đối tượng của lớp chó xù và cũng là hậu duệ của lớp chó
Lưu ý của tác giả. Các lập trình viên Java sẽ rất vui khi biết rằng instanceof chính là người bạn cũ mà họ đã quen trong nhiều năm. Đó là một từ khóa tuyệt vời mà bất kỳ người kỳ cựu Java nào cũng sẽ nói với bạn, và gần như chắc chắn bạn sẽ thấy mình sử dụng nó khá thường xuyên trong các tập lệnh của mình.
Nếu bạn chỉ muốn biết liệu một đối tượng có phải là hậu duệ của một lớp hay không chứ không phải của chính lớp đó, bạn có thể sử dụng hàm is_subclass_of[]. Điều này lấy một đối tượng làm tham số đầu tiên của nó [hoặc một chuỗi chứa tên lớp], một chuỗi tên lớp làm tham số thứ hai và trả về giá trị đúng hoặc sai tùy thuộc vào việc tham số đầu tiên có phải là con cháu của lớp được chỉ định trong tham số thứ hai hay không
Hiểu sự khác biệt giữa instanceof và is_subclass_of[] là rất quan trọng - tập lệnh này sẽ làm cho nó rõ ràng
Điều đó sẽ xuất ra 1 rồi 0. Việc đánh máy thành int được sử dụng vì boolean false được in ra dưới dạng "" [trống], nhưng bằng cách đánh máy thành một số nguyên, điều này trở thành 0. Như bạn có thể thấy, sử dụng instanceof báo cáo đúng rằng $poppy là chó xù hoặc chó, trong khi is_subclass_of[] báo cáo sai vì $poppy không phải là hậu duệ của lớp "chó xù" - nó là chó xù
Lưu ý của tác giả. Bạn cũng có thể sử dụng từ khóa instanceof để xem liệu một đối tượng có triển khai giao diện hay không
Bạn muốn học PHP 7?
Hacking with PHP đã được cập nhật đầy đủ cho PHP 7 và hiện có sẵn dưới dạng PDF có thể tải xuống. Nhận hơn 1200 trang học PHP thực hành ngay hôm nay
Nếu điều này hữu ích, vui lòng dành chút thời gian để nói với những người khác về Hacking với PHP bằng cách tweet về nó
Giá trị trả về. Hàm này trả về True nếu đối tượng thuộc lớp này hoặc có lớp này là một trong các cha của nó, nếu không nó sẽ trả về giá trị Sai
Các chương trình dưới đây minh họa hàm is_a[]
Yes9
Yes0
Yes1
Yes0
Yes1
Yes2
Yes3
Yes4
Yes5
Yes6
Yes7
Yes8
Yes9
20Yes0
22
23 Yes7____125
26Yes0
28
29Yes0
Yes1
Yes2______21
23Yes5
Yes6
Yes7
Yes4
Yes9
Yes20
Yes9
20Yes0
Yes24
đầu ra.
Yestoán tử instanceof
Toán tử instanceof được sử dụng trong PHP để tìm hiểu xem một đối tượng có phải là một thể hiện được khởi tạo của một lớp hay không.
cú pháp
2Toán hạng. Toán tử này chứa hai toán hạng được liệt kê bên dưới
- $a. Điều này được sử dụng như một đối tượng
- Lớp học của tôi. Đó là một tên lớp
Giá trị trả về. Nó trả về True nếu đối tượng thuộc lớp này hoặc có lớp này là một trong các cha của nó, nếu không nó sẽ trả về giá trị Sai