Instanceof php là gì?

Trong một số trường hợp bạn cần phải kiểm tra lớp cha hoặc lớp của một đối tượng nào đó, PHP cung cấp hai cách cơ bản là sử dụng hàm is_a[] và sử dụng từ khóa instanceof, kết quả trả về là true/false

Để kiểm tra phương thức có tồn tại không ta có hàm method_exists[], hàm này có đối số thứ nhất là đối tượng, đối số thứ hai là tên phương thức cần kiểm tra, kết quả trả về là true/false

Để kiểm tra thuộc tính có tồn tại không ta có hàm property_exists[], hàm này có đối số thứ nhất là đối tượng, đối số thứ hai là tên thuộc tính cần kiểm tra, kết quả trả về là true/false

Cần lưu ý rằng nếu sử dụng 2 hàm method_exists[] và property_exists[] bên ngoài lớp thì phương thức hoặc thuộc tính cần kiểm tra phải có phạm vi là public

Sau đây sẽ là ví dụ về cách sử dụng hàm is_a[] và instanceof

là một[]

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
6
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
8

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
9
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
1
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
8

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
4
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
70
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
71 
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
72

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
73
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
74
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
75
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
76
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
75
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
5
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
79
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
80 
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
81
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
82
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
83
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
84
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
80 
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
86
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
82

Hàm is_a[] có 2 đối số là đối tượng và tên lớp muốn kiểm tra, tên lớp trong hàm không phân biệt kiểu viết hoa hay thường

dụ của

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
6
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
89 
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
70
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
71 
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
92

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
9
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
74
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
75
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
89
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
97

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
4
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
99____180_______171
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
72

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
73
bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
74

instanceof có chức năng cũng như các đối tượng tự như function is_a[] chỉ có sự khác biệt, cụ thể là instanceof có thể kiểm tra được giao diện còn is_a[] thì không

bool[true]
bool[true]
bool[false]
bool[true]
1 cũng có thể được sử dụng để xác định xem một biến có phải là đối tượng khởi tạo của một lớp kế thừa từ lớp cha hay không

Ví dụ #2 Sử dụng

bool[true]
bool[true]
bool[false]
bool[true]
1 với các lớp kế thừa

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
0

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
1

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
2

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
3

Ví dụ trên sẽ xuất ra

Để kiểm tra xem một đối tượng có phải là một thể hiện của một lớp hay không, có thể sử dụng toán tử logic

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
4

Ví dụ #3 Sử dụng

bool[true]
bool[true]
bool[false]
bool[true]
1 để kiểm tra xem đối tượng có phải là một thể hiện của một lớp không

bool[true]
bool[true]
bool[false]
bool[true]
4

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
7

Ví dụ trên sẽ xuất ra

Cuối cùng,

bool[true]
bool[true]
bool[false]
bool[true]
1 cũng có thể được sử dụng để xác định xem một biến có phải là một đối tượng khởi tạo của một lớp thực hiện một giao diện hay không

Ví dụ #4 Sử dụng

bool[true]
bool[true]
bool[false]
bool[true]
1 với các giao diện

bool[true]
bool[true]
bool[false]
bool[true]
0

bool[true]
bool[true]
bool[false]
bool[true]
1

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
2

bool[true]
bool[true]
bool[false]
bool[true]
3

Ví dụ trên sẽ xuất ra

Mặc dù

bool[true]
bool[true]
bool[false]
bool[true]
1 thường được sử dụng với tên lớp theo nghĩa đen, nhưng nó cũng có thể được sử dụng với một đối tượng khác hoặc một biến chuỗi

Ví dụ #5 Sử dụng

bool[true]
bool[true]
bool[false]
bool[true]
1 với các biến khác

bool[true]
bool[true]
bool[false]
bool[true]
0

bool[true]
bool[true]
bool[false]
bool[true]
1

bool[true]
bool[true]
bool[false]
bool[true]
8

bool[true]
bool[true]
bool[false]
bool[true]
9

Ví dụ trên sẽ xuất ra

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given
4

instanceof không đưa ra bất kỳ lỗi nào nếu biến đang được kiểm tra không phải là một đối tượng, nó chỉ trả về

bool[true]
bool[true]
bool[false]
bool[true]
10. Tuy nhiên, các hằng số không được phép trước PHP 7. 3. 0

Ví dụ #6 Sử dụng

bool[true]
bool[true]
bool[false]
bool[true]
1 để kiểm tra các biến khác

bool[true]
bool[true]
bool[false]
bool[true]
12

Ví dụ trên sẽ xuất ra

bool[false]
bool[false]
bool[false]
PHP Fatal error:  instanceof expects an object instance, constant given

Kể từ PHP 7. 3. 0, các hằng số được phép ở phía bên trái của toán tử

bool[true]
bool[true]
bool[false]
bool[true]
1

Ví dụ #7 Sử dụng

bool[true]
bool[true]
bool[false]
bool[true]
1 để kiểm tra hằng số

bool[true]
bool[true]
bool[false]
bool[true]
15

Đầu ra của ví dụ trên trong PHP 7. 3

Kể từ PHP 8. 0. 0,

bool[true]
bool[true]
bool[false]
bool[true]
1 hiện có thể được sử dụng với các biểu thức tùy ý. Biểu thức phải được đặt trong dấu ngoặc đơn và tạo ra một chuỗi

Chủ Đề