Hướng dẫn introspection and serialization in php - xem xét nội tâm và tuần tự hóa trong php

6.5.2. Kiểm tra một đối tượng

Để có được lớp mà một đối tượng thuộc về, trước tiên hãy đảm bảo rằng đó là một đối tượng sử dụng hàm is_Object [], sau đó lấy lớp với hàm get_class []:

$yes_no = is_object[var];
$classname = get_class[object];

Trước khi gọi một phương thức trên một đối tượng, bạn có thể đảm bảo rằng nó tồn tại bằng cách sử dụng hàm method_exists []:

$yes_no = method_exists[object, method];

Gọi một phương thức không xác định kích hoạt một ngoại lệ thời gian chạy.

Giống như get_class_vars [] trả về một mảng thuộc tính cho một lớp, get_object_vars [] trả về một mảng các thuộc tính được đặt trong một đối tượng:

$array = get_object_vars[object];

Và giống như get_class_vars [] chỉ trả về các thuộc tính đó có giá trị mặc định, get_object_vars [] chỉ trả về các thuộc tính được đặt:

class Person {
  var $name;
  var $age;
}
$fred = new Person;
$fred->name = 'Fred';
$props = get_object_vars[$fred];    // $props is array['name' => 'Fred'];

Hàm get_parent_class [] thực sự chấp nhận một đối tượng hoặc tên lớp. Nó trả về tên của lớp cha hoặc sai nếu không có lớp cha:

class A {}
class B extends A {}
$obj = new B;
echo get_parent_class[$obj];           // prints A
echo get_parent_class[B];              // prints A

❮ Tham chiếu xử lý biến PHP

Thí dụ

Chuyển đổi biểu diễn có thể lưu trữ của một giá trị:

Hãy tự mình thử »

Định nghĩa và cách sử dụng

Hàm serialize [] chuyển đổi một biểu diễn có thể lưu trữ của một giá trị.

Để tuần tự hóa dữ liệu có nghĩa là chuyển đổi giá trị thành một chuỗi các bit, để nó có thể được lưu trữ trong một tệp, bộ đệm bộ nhớ hoặc truyền qua mạng.

Cú pháp

Giá trị tham số

Tham sốSự mô tả
giá trịYêu cầu. Chỉ định giá trị được tuần tự hóa

Chi tiết kỹ thuật

Giá trị trở lại:Loại trở lại:Phiên bản PHP:
Một chuỗi chứa một biểu diễn byte-stream của giá trị. Chuỗi có thể được lưu trữ ở bất cứ đâu
Sợi dây
4.0+

❮ Tham chiếu xử lý biến PHP


Hướng nội

Hướng nội là khả năng của một chương trình để kiểm tra các đặc điểm của đối tượng, chẳng hạn như tên của nó, lớp cha [nếu có], thuộc tính và phương thức. Với nội tâm, bạn có thể viết mã hoạt động trên bất kỳ lớp hoặc đối tượng nào. Bạn không cần biết phương thức hoặc thuộc tính nào được xác định khi bạn viết mã của mình; Thay vào đó, bạn có thể khám phá ra thông tin đó vào thời gian chạy, điều này giúp bạn có thể viết các trình gỡ lỗi chung, serializer, profilers, v.v. Trong phần này, chúng tôi xem xét các chức năng nội tâm do PHP cung cấp. is the ability of a program to examine an object’s characteristics, such as its name, parent class [if any], properties, and methods. With introspection, you can write code that operates on any class or object. You don’t need to know which methods or properties are defined when you write your code; instead, you can discover that information at runtime, which makes it possible for you to write generic debuggers, serializers, profilers, etc. In this section, we look at the introspective functions provided by PHP.

Kiểm tra các lớp học

Để xác định xem một lớp có tồn tại hay không, hãy sử dụng hàm

$yes_no = method_exists[object, method];
4, có trong một chuỗi và trả về giá trị boolean. Thay phiên, bạn có thể sử dụng chức năng
$yes_no = method_exists[object, method];
5, trả về một mảng các lớp được xác định và kiểm tra xem tên lớp có trong mảng được trả về không:

$yes_no = class_exists[classname];
$classes = get_declared_classes[  ];

Bạn có thể nhận các phương thức và thuộc tính tồn tại trong một lớp [bao gồm cả các phương thức được kế thừa từ các lớp siêu cấp] bằng cách sử dụng các hàm

$yes_no = method_exists[object, method];
6 và
$yes_no = method_exists[object, method];
7. Các chức năng này lấy tên lớp và trả về một mảng:

$methods = get_class_methods[classname];
$properties = get_class_vars[classname];

Tên lớp có thể là một từ trần, chuỗi được trích dẫn hoặc một biến chứa tên lớp:

$class = 'Person';
$methods = get_class_methods[$class];
$methods = get_class_methods[Person];    // same
$methods = get_class_methods['Person'];  // same

Mảng đã trả về ...

Hướng nội là khả năng của một chương trình để kiểm tra các đặc điểm của một đối tượng, chẳng hạn như tên của nó, lớp cha [nếu có], thuộc tính và phương thức. Với nội tâm, bạn có thể viết mã hoạt động trên bất kỳ lớp hoặc đối tượng nào.

Sê -ri hóa trong PHP là gì?

Trong bài viết này, bạn sẽ thấy một vài ví dụ về cách sử dụng một số chức năng hướng nội PHP hữu ích nhất và một phần dành riêng cho API cung cấp chức năng tương tự như hướng nội, API phản ánh.

Chức năng nội tâm PHP

Trong ví dụ đầu tiên, tôi sẽ chứng minh một số ít các chức năng nội tâm của PHP. Bạn có thể sử dụng các chức năng này để trích xuất thông tin cơ bản về các lớp như tên của chúng, tên của lớp phụ huynh của họ, v.v.

  • $yes_no = method_exists[object, method];
    
    8 - Kiểm tra xem một lớp có được xác định không
  • $yes_no = method_exists[object, method];
    
    9 - Trả về tên lớp của một đối tượng
  • $array = get_object_vars[object];
    0 - Trả về tên lớp của lớp cha mẹ đối tượng
  • $array = get_object_vars[object];
    1 - Kiểm tra xem một đối tượng có lớp cha mẹ nhất định không

Dưới đây là mã PHP ví dụ chứa định nghĩa cho các lớp

$array = get_object_vars[object];
2 và
$array = get_object_vars[object];
3 và thông tin đầu ra được trích xuất bởi các chức năng được liệt kê ở trên:

Bài Viết Liên Quan

Chủ Đề