Hướng đối tượng trong PHP: Một số hàm lấy thông tin

Hướng đối tượng trong PHP: Một số hàm lấy thông tin

PHP đã cung cấp một số hàm để chúng ta lấy thông tin của đối tượng, điều này sẽ giúp ích khi chúng ta làm việc với những mô hình lớn và sử lý những tính huống cần thiết. Bài viết này sẽ giới thiệu về các hàm như get_class, get_parent_class, get_class_vars, get_class_methods, get_object_vars.

get_class()

Hàm này sẽ trả về tên lớp của đối tượng, chúng ta sẽ xét đến 2 trường hợp là sử dụng bên trong lớp và bên ngoài lớp

Nếu sử dụng bên ngoài lớp thì đối số của hàm sẽ là đối tượng cần lấy thông tin

Nếu sử dụng bên trong lớp thì hàm có thể không cần đối số khi này hàm sẽ trả về tên lớp chứa nó, trường hợp nếu hàm sử dụng $this làm đối số thì hàm sẽ trả về tên lớp ở đối tượng nào gọi nó ví dụ ta gọi nó ở các lớp kế thừa thì hàm sẽ trả về tên lớp kế thừa. Xem ví dụ sau để hiểu rõ điều này:

class ParentClass{
    public function getClass1(){
      return get_class($this);
    }
    public function getClass2(){
      return get_class();
    }
}
class ChildClass extends ParentClass{}
$cc = new ChildClass();
echo get_class($cc); // ChildClass
echo $cc->getClass1(); // ChildClass
echo $cc->getClass2(); // ParentClass

get_class_methods()

Hàm sẽ trả về một mảng các phần tử là tên các phương thức của đối tượng, đối số của hàm có thể là đối tượng hoặc tên lớp.

get_class_vars()

Hàm sẽ trả về một mảng phần tử với index và value của từng phần tử là tương ứng với từng thuộc tính và giá trị trong lớp, đối số của hàm là chuỗi tên lớp.

get_object_vars()

Hàm này chức năng cũng tương tự như get_class_vars() tuy nhiên có sự khác biệt là hàm get_object_vars() có đối số là đối tượng nếu sử dụng ở ngoài lớp  và đối số là $this nếu sử dụng ở trong lớp, có một điểm khác biệt quan trọng nữa là get_class_vars() chỉ trả về những thuộc tính với giá trị mặc định trong lớp, get_object_vars thì trả về những thuộc tính với giá trị có thể được thay đổi bên ngoài lớp. Xem ví dụ sau để hiểu rõ điều này:

class ParentClass{
    public $name = 'Khuong Van Ngo';
}
class ChildClass extends ParentClass{}
$cc = new ChildClass();
$cc->name = 'Ngo Van Khuong';
print_r(get_class_vars('ChildClass'));  // Array([name] =>Khuong Van Ngo)
print_r(get_object_vars($cc)); // Array([name] =>Ngo Van Khuong)

get_parent_class()

Hàm trả về tên lớp cha của đối tượng, đối số là đối tượng nếu ở ngoài lớp, nếu trong lớp thì không cần đối số.

Bạn thấy bài viết này như thế nào?: 
Average: 6 (1 vote)
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Bình luận (0)

 

Add Comment

Filtered HTML

  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Các thẻ HTML được chấp nhận: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Tự động ngắt dòng và đoạn văn.

Plain text

  • No HTML tags allowed.
  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Tự động ngắt dòng và đoạn văn.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Hacker Jeremy Hammond - Anonymous từng bị FBI truy bắt

Hacker Jeremy Hammond - Anonymous từng bị FBI truy bắt

Tạp chí Rolling Stone kể về hành trình bắt giữ hacker Jeremy Hammond cuối năm 2012 cũng như mô tả sự hỗn độn của thế giới tin tặc với những con người tài năng, lập dị.

How Cloud became the most important buzzword in business

Drupal 9: Những cách để 1 cloud trở thành buzzword trong kinh doanh

I talk a lot about the Cloud.  In fact if I were doing shots every time I mentioned the word, I'd probably be facedown on my desk by 9AM. 

Hướng dẫn mua vé dự DrupalCon Los Angeles tháng 5 năm 2015

Hướng dẫn mua vé dự DrupalCon Los Angeles tháng 5 năm 2015

When you purchase your tickets, you may notice that the process for registering is a little different than before. 

Công ty diệt chuột T&C

 

Diet con trung