П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 3521 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6121 раз(а).

Учебник HTML.
Просмотров 3276 раз(а).

Руководство по PHP5.
Просмотров 5497 раз(а).

Хостинг через призму DNS.
Просмотров 4145 раз(а).

Подборка текстов стандартных документов.
Просмотров 55773 раз(а).

Учебник PHP - Самоучитель
Просмотров 3091 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 5732 раз(а).

Внешние атаки...
Просмотров 3841 раз(а).

Учебник PHP.
Просмотров 2825 раз(а).

SSI в примерах.
Просмотров 37463 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Учебник РНР
Назад Глава 13. Классы и Объекты Вперёд

::(два двоеточия)

Предупреждение!

Следующая информация верна только по отношению к PHP 4.

Иногда удобно обращаться к функциям или переменным в базовых классах или обратиться к функциям в классах, которые ещё не имеют экземпляров. Операция :: используется именно для этого.

class A
{
    function example()
    {
        echo "I am the original function A::example().<br>\n";
    }
}

class B extends A
{
    function example()
    {
        echo "I am the redefined function B::example().<br>\n";
        A::example();
    }
}

// нет объекта класса A.
// будет напечатано
//   I am the original function A::example().<br>
A::example();

// создаётся объект класса B.
$b = new B;

// будет напечатано
//   I am the redefined function B::example().<br>
//   I am the original function A::example().<br>
$b->example();

Вышеприведённый пример вызывает функцию example() в классе A, но объектов класса A нет, поэтому мы не можем записать $a->example() или что-нибудь подобное. Вместо этого мы вызываем example() как 'функцию класса', то есть как функцию самого класса, а не объекта этого класса.

Имеются функции класса, но нет переменных класса. Фактически в момент вызова объектов вообще нет. Таким образом, функция класса не может использовать переменные объектов (но может использовать локальные или глобальные переменные) и вообще не может использовать $this.

В приведённом примере class B переопределяет функцию example(). Оригинальное определение в class A скрывается и больше не доступно, если только вы не обратитесь специально к реализации example() в class A с использованием операции ::. Запишите A::example() для этого (фактически вы должны записать parent::example(), как показано в предыдущем разделе).

В этом контексте имеется текущий объект, и он может иметь переменные объекта. Таким образом, при использовании ВНУТРИ функции объекта, вы может использовать $this и переменные объекта.


Назад Оглавление Вперёд
Конструкторы Вверх parent


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru