Chồng đối tượng (object overloading) với _get(), _set() và _call()

Chồng đối tượng (object overloading) với _get(), _set() và _call()

Thường thì nếu bạn muốn đọc hay viết một đặc tính của đối tượng, PHP nghiêm ngặt đọc và thiết
lập các giá trị của đặc tính (giả định rằng các đặc tính là tồn tại, và code của bạn có quyền
truy cập nó). Tương tự, nếu bạn gọi một method của object, PHP sẽ tìm method trong object và nếu
nó tìm thấy sẽ chạy nó.
Tuy nhiên, PHP cho phép bạn sử dụng một kĩ thuật được biết đến như là overloading (chồng)
để can thiệp vào cố gắng đọc hay viết một đặc tính của object hay gọi method của nó. Điều này đem
lại khả năng mạnh mẽ. Trong chừng mực liên quan đến code gọi, object của bạn có thể làm những thứ
thú vị, ví dụ:
+ Code gọi đọc giá trị của $myObject->property, cái thực sự làm cho $myObject lấy giá trị từ một
mảng thay vào đó.
+ Code gọi thiết lập $myObject->anotherProperty tới giá trị mới, nhưng đằng sau đó $myObject thực sự
viết giá trị này vào trường CSDL.
+ Code gọi gọi $myObject->method(). Method này không thực sự tồn tại trong $myObject, nhưng $myObject
can thiệp vào lời gọi và gọi một method khác thay vào đó. Mặc dù, bạn có thể sẽ không dùng object overloading
một cách thường xuyên, bạn có thể thấy kĩ thuật này đem lại cho bạn rất nhiều sự linh động.

Chia sẻ

Leave a Reply

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