Page 72 - 4636
P. 72

Перетворення класів рядка
           Якщо реалізувати в класі функцію __toString(), вона буде викликатися при спробі виведення
        класу на друк, як показано нижче:
           $р = new Printable; echo $р;
           Все, що повертає функція toString(), буде виводитися на екран оператором echo. Цю функцію
        можна реалізувати, наприклад, таким чином:
           class Printable { var $testone; var $t?sttwo; public function
           toString() { return(var_export($this, TRUE)); }} (Функція var_export()
           виводить значення всіх атрибутів класу.)
           Використання Reflection API
           До об'єктно-орієнтованих можливостей РНР відноситься і API-інтерфейс рефлексії Reflection API.
        Рефлексія - це здатність опитувати існуючі класи і об'єкти на предмет інформації про їх структуру і
        вміст.  Дана  можливість  виключно  корисна  при  взаємодії  з  невідомими  або  недокументованими
        класами, які представлені в закодованих РНР-сценаріїв. Цей API-інтерфейс надзвичайно складний, але
        ми  все  ж.  розглянемо  простий  приклад,  який  дозволить  схопити  основну  ідею.  У  прикладі
        використовується раніше визначений у цій лекції клас Раді. Отримати всю інформацію про клас Раді
        за допомогою Reflection API можна так, як показано в лістингу 2.8.


































                                 Рисунок 2.6 - Результат, забезпечуваний Reflection API

           Лістинг 2.8. reflection.php - відображає інформацію про клас Page
           <?php
           require_once("page.inc”) ;
           Sclass = new ReflectionClass("Page") ;
           echo ”<pre>".$class."</pre>";
           ?>
           Тут  для  виведення  на  друк  інформації  використовується  метод  __toString()  класу
        Reflection. Зверніть  увагу на дескриптори <рге>, які не мають відношення  до інформації, яка
        видається методом __toString ().




                                                            69
   67   68   69   70   71   72   73   74   75   76   77