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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Учебник РНР
Назад Глава 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