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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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