⊗ppOpMgGP 88 of 107 menu

PHP-də OOP-də xassələrin sehr ilə əldə edilməsi

Növbəti sehrli metod, bizim nəzərdən keçirəcəyimiz, __get adlanır. Bu metod gizli və ya qorunan xassənin qiymətini oxumaq cəhdi zamanı işə düşür.

Əgər __get metodu hər hansı bir sinifdə tətbiq edilərsə, onda mövcud olmayan və ya gizli xassələrə bütün müraciətlər bu metod tərəfindən emal ediləcək.

Bu zaman PHP avtomatik olaraq istənilən xassənin adını bu metodun birinci parametrinə ötürəcək, bu metodun qaytardığı qiymət isə müraciət edilən xassənin qiyməti kimi qəbul ediləcək.

Yəqin ki, hələlik bu işin necə getdiyi çox aydın deyil, buna görə də praktiki misala nəzər salaq. Tutaq ki, bizim gizli və ictimai xassələri olan Test sinfi var:

<?php class Test { public $prop1 = 1; // ictimai xassə private $prop2 = 2; // gizli xassə } ?>

Gəlin sinfimizə, əvvəlcə sadəcə olaraq müraciət edilən xassənin adını qaytaran sehrli __get metodunu əlavə edək:

<?php class Test { public $prop1 = 1; private $prop2 = 2; public function __get($property) { return $property; // sadəcə xassənin adını qaytaraq } } ?>

Gəlin yaradılmış sehrli metodun işini yoxlayaq. Üç növ xassəyə müraciət edək: ictimai xassəyə, gizli xassəyə və mövcud olmayan xassəyə:

<?php $test = new Test; // Ictimai xassəyə müraciət edirik: echo $test->prop1; // 1 çap edəcək - yəni xassənin qiyməti // Gizli xassəyə müraciət edirik: echo $test->prop2; // 'prop2' çap edəcək - xassənin adı // Mövcud olmayan xassəyə müraciət edirik: echo $test->prop3; // 'prop3' çap edəcək - xassənin adı ?>

Gördüyünüz kimi, bizim sehrli metod gizli və mövcud olmayan xassələrə müraciətə reaksiya verir, lakin ictimai xassələrə müraciəti laqeyd qoyur - onlar əvvəlki kimi işləyir.

azbydeenesfrkakkptruuz