|
|||||||||
|
|||||||||
ОсновыclassКаждое определение класса начинается с ключевого слова class, затем следует имя класса, которое может быть любым именем не входящим в список зарезервированных слов PHP. После идет пара фигурных скобок, в которых находится определение свойств и методов класса. Псевдо-переменная $this доступна в том случае, когда метод был вызван в контексте объекта. $this является ссылкой на вызываемый объект. Обычно это тот объект, которому принадлежит вызванный метод, но может быть и другой объект, если метод был вызван статически из контекста другого объекта. Это показано на следующих примерах: Пример #1 переменная $this в объектно-ориентированном языке
<?phpРезультат выполнения данного примера:
Пример #2 Определение класса Simple Class
<?phpЗначение по умолчанию должно быть постоянным выражением и не может быть, например, переменной, членом класса или вызовом функции. Пример #3 Значение свойства класса по умолчанию
<?php
newДля создания экземпляра класса новый объект должен быть создан и присвоен переменной. Новый объект всегда будет присвоен переменной, за исключением случаев, когда объект имеет конструктор, в котором определен вызов исключения в случае ошибки. Рекомендуется определять классы до создания их экземпляров (в некоторых случаях это уже не рекомендуется, а требуется). Пример #4 Создание экземпляра класса
<?phpВ контексте класса возможно создать новый объект через new self и new parent. Когда происходит назначение уже существующего экземпляра класса новой переменной, то это переменная будет иметь доступ к экземпляру класса того объекта, который был назначен. Это поведение будет таким же, как и в случае передачи экземпляра класса в функцию. Копию уже созданного объекта можно создать через клонирование. Пример #5 Присваивание объекта
<?phpРезультат выполнения данного примера:
extendsКласс может наследовать методы и свойства другого класса используя ключевое слово extends при декларации. Невозможно наследовать несколько классов, один класс может наследовать только один базовый класс. Наследуемые методы и свойства могут быть переопределены (за исключением случаев, когда метод класса объявлен как final) путем объявления их с теми же именами, как и в родительском классе. Существует возможность доступа к переопределенным методам или статическим методам путем обращения к ним через parent:: Пример #6 Простое наследование класса
<?phpРезультат выполнения данного примера:
| |||||||||
|
|||||||||