Chồng truy cập đặc tính PHP với _get() và _set() (phần 3)

Chồng truy cập đặc tính với _get() và _set()

Để can thiệp vào cố gắng đọc một đặc tính ẩn, bạn tạo một method gọi là _get() trong class.
Method _get() của bạn mong đợi một thông số duy nhất: tên của đặc tính được yêu
cầu. Sau đó nó trả về giá trị, giá trị này đến lượt nó được truyền trả về code gọi như là giá
trị của đặc tính được giành lấy.
Sau đây là một ví dụ:

class Car {
public function __get( $propertyName ) {
echo “The value of ‘$propertyName’ was requested < br / > ”;
return “blue”;
}
}
$car = new Car;
$x = $car- > color; // Displays “The value of ‘color’ was requested”
echo “The car’s color is $x < br / > ”; // Displays “The car’s color is blue”

Trong ví dụ này, class Car không chứa một đặc tính thực sự nào, nhưng nó có method _get(). Method này
đơn giản hiển thị giá trị của tên đặc tính được yêu cầu và trả về giá trị “blue”. Phần còn lại của
đoạn script tạo một object từ class Car, và cố gắng lấy đặc tính không tồn tại $car->color, lưu giữ kết
quả ở biến mới $x. Làm việc này châm ngòi cho method _get() của object của class Car, cái hiển thị tên
đặc tính được yêu cầu (“color”) và trả về chuỗi kí tự “blue”. Chuỗi kí tự này sau đó được truyền trả
về code gọi và lưu trong biến $x, và được hiển thị bởi dòng code cuối cùng.
Tương tự, để nắm bắt lấy cố gắng thiết lập một đặc tính ẩn tới một giá trị, sử dụng _set(). Phương thức
_set() của bạn cần 2 thông số tên đặc tính và giá trị được thiết lập tới nó. Nó không cần trả về giá trị.

public function __set( $propertyName, $propertyValue ) {
// (do whatever needs to be done to set the property value)
}

Chia sẻ

Leave a Reply

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