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à dùng hàm is_a() và sử dụng từ khóainstanceof, kết quả trả về là true/false.

Đang xem: Hướng đối tượng trong php: kiểm tra đối tượng

Để 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 chú ý 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.

Xem thêm: Cách Dạy Trẻ 1 Tuổi Những Gì Để Con Phát Triển Toàn Diện Và Thông Minh?

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

is_a()

2 classChildClassextendsParentClass{}

4 if(is_a($cc,ChildClass)){echo”true”;}else{echo”false”;}

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.

Xem thêm: Phân Biệt Dòng Điện Là Gì Xoay Chiều Là Gì Bạn Có Biết? Kiến Thức Vật Lý 9

instanceof

1 $s=newArrayIterator();
2 if($sinstanceof iterator){
3 echo”co nguon goc tu iterator”;

instanceof có chức năng cũng tượng tự như hàm is_a() chỉ có sự khác biệt là instanceof có thể kiểm tra được interface còn is_a() thì không.

instanceof trong php

classFoo{

public

$foobar=”Foo”;

public function

test(){ echo$this->foobar.”n”; }

}

class

BarextendsFoo{

public

$foobar=”Bar”;

}

$a= newFoo();$b=newBar();

echo

“use of test() methodn”;$a->test();$b->test();

echo

“instanceof Foon”;var_dump($ainstanceofFoo);var_dump($binstanceofFoo);echo”instanceofBarn”;var_dump($ainstanceofBar);var_dump($binstanceofBar);echo”subclass of Foon”;var_dump(is_subclass_of($a,”Foo”));var_dump(is_subclass_of($b,”Foo”));echo”subclassof Barn”;var_dump(is_subclass_of($a,”Bar”));var_dump(is_subclass_of($b,”Bar”));?>Result (CLI, 5.4.4):

use of test() methodFooBarinstanceofFoobool(true)bool(true)instanceof Barbool(false)bool(true)subclass of Foobool(false)bool(true)subclass of Barbool(false)bool(false)

*

Topics: Công nghệ mới Lập trình PHP

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *