⊗ppOpMgGP 88 of 107 menu

Lấy thuộc tính thông qua ma thuật trong OOP PHP

Phương thức ma thuật tiếp theo mà chúng ta sẽ phân tích cùng nhau được gọi là __get. Phương thức này được kích hoạt khi cố gắng đọc giá trị của một thuộc tính private hoặc protected.

Nếu triển khai phương thức __get trong một lớp nào đó, thì tất cả các truy cập vào các thuộc tính không tồn tại hoặc bị ẩn sẽ được xử lý bởi phương thức này.

Đồng thời, PHP sẽ tự động truyền tên của thuộc tính được yêu cầu vào tham số đầu tiên của phương thức này, và giá trị được trả về bởi phương thức này sẽ được coi là giá trị của thuộc tính mà đã được truy cập.

Có lẽ bây giờ vẫn chưa thực sự rõ ràng cách nó hoạt động, vì vậy hãy xem một ví dụ thực tế. Giả sử chúng ta có lớp Test với các thuộc tính private và public như sau:

<?php class Test { public $prop1 = 1; // thuộc tính public private $prop2 = 2; // thuộc tính private } ?>

Hãy thêm phương thức ma thuật __get vào lớp của chúng ta, ban đầu nó sẽ chỉ đơn giản trả về tên của thuộc tính mà đã được truy cập:

<?php class Test { public $prop1 = 1; private $prop2 = 2; public function __get($property) { return $property; // chỉ cần trả về tên thuộc tính } } ?>

Hãy kiểm tra hoạt động của phương thức ma thuật đã tạo. Chúng ta sẽ truy cập vào ba loại thuộc tính: thuộc tính public, thuộc tính private và thuộc tính không tồn tại:

<?php $test = new Test; // Truy cập vào thuộc tính public: echo $test->prop1; // sẽ hiển thị 1 - tức là giá trị của thuộc tính // Truy cập vào thuộc tính private: echo $test->prop2; // sẽ hiển thị 'prop2' - tên thuộc tính // Truy cập vào thuộc tính không tồn tại: echo $test->prop3; // sẽ hiển thị 'prop3' - tên thuộc tính ?>

Như bạn thấy, phương thức ma thuật của chúng ta phản ứng với việc truy cập vào các thuộc tính private và không tồn tại, nhưng bỏ qua việc truy cập vào các thuộc tính public - chúng hoạt động như trước đây.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối