среда, 7 августа 2013 г.

Позднее статическое связывание PHP >= 5.3.0


Это интересное простое в реализации свойство, которое предаёт гибкость в ООП. Вроде бы всё просто, но различие схем использования может запутать. Статические свойства ООП используются для работы с классами без инициализации объектов. Инициализированные объекты также могут использовать статические свойства ООП. self::, parent::, static:: помогают использовать статические свойства ООП в PHP. Данные операторы могут ввести себя одинаково. Всё зависит от условий использования. Основное различие опреаторов self::, parent::, static:: это среда(scope) их исполинения. Заметьте, что не только то откуда вызывается статический метод, или свойство но и то какие зависимые свойства классов они используют.
self:: - Среда определения, класс где метод, свойство были объявлены.
parent:: - Среда родительского класса.
static:: - Среда где происходит вызов метода, свойства.

Всё начиналось с перевода документации. Перевести документацию доходчиво не получилось. Материал выложил так, как понял. Примеры смотрите в документации. __CLASS__,  forward_static_call(), get_called_class() помогают в определении среды исполнения