вопрос | ответ |
Оператор instanceof используется для определения того, является ли текущий объект экземпляром указанного | instanceof Оператор проверки типа Пример (if($id instanceof WP_Error) {}) |
Использование :: в объявлении класса | Для обращения к свойствам и методам в объявлении класса используются ключевые слова self и parent. Пример использования :: в объявлении класса: |
Использование :: вне объявления класса | echo MyClass::CONST_VALUE; |
Обращение к элементам классов в PHP5 (::) | Используя эту оператор :: можно обращаться к константам, статическим или перегруженным свойствам или методам класса. При обращении к этим элем |
Классы, помеченные как final (final class FinalClass { ) | После объявления класса final он не может быть унаследован. Следующий пример вызовет ошибку: |
Метод final | Ключевое слово final позволяет вам помечать методы, чтобы наследующий класс не мог перегрузить их. Разместив перед объявлениями методов или свойств кл |
Оператор instanceof (if ($obj instance of Circle) { ... }) | Поддержка проверки зависимости от других объектов. Функцией is_a(), известной из PHP 4, пользоваться теперь не рекомендуется. |
Интерфейсы ( interface ITemplate {public function setVariable($name, $var); .... } class Template implements ITemplate { public function setVari | Интерфейсы объектов позволяют программисту создавать код, который указывает, какие методы и свойства должен включать класс, без необходимости описыван |
Итераторы (foreach($class as $key => $value) {) | PHP 5 предоставляет механизм итераторов для получения списка всех свойств какого-либо объекта, например, для использования совместно с оператором fore |
Поддержка разыменования объектов, которые возвращаются методами. | В PHP 4 вы не могли непосредственно разыменовывать объекты, которые возвращаются из методов. Вы должны были бы сначала присвоить такой объект некой фи |
Указание класса как типа (function expectsMyClass(MyClass $obj) { ) | Определения функции могут включить указание типа класса, передаваемого в качестве параметра. Если функция будет вызвана с неправильным типом, произойд |
Абстрактные классы | PHP 5 поддерживает определение абстрактных классов и методов. Создавать экземпляр класса, который был объявлен абстрактным, нельзя. Класс, в котором о |
Статические методы (static function helloWorld() { ) | Вы можете теперь определить методы как статические, разрешая им быть вызванными вне контекста объекта. Статические методы не определяются через переме |
Статические члены класса (static private $instance = NULL; ) | Определения классов могут теперь включить статических членов класса (свойства и методы), доступ к которым осуществляется через класс. Общее использова |
Константы класса (const SUCCESS = "Success";) | В определения классов теперь можно включить константы, и ссылаться на них, используя объект. Константы также могут быть объявлены и в пределах одного |
Явное клонирование объекта (copy_of_object = clone $object;) | Когда программист запрашивает создание копии объекта, PHP 5 определит, был ли для этого объекта объявлен метод __clone() или нет. Если нет, будет вызв |
Поддержка деструктора для класса, определяемого как метод __destructor() | PHP 5 предоставляет концепцию деструкторов, сходную с теми, что применяются в других ОО языках, таких, как Java: когда освобождается последняя ссылка |
Унифицированный конструктор __construct() | PHP 5 позволяет объявлять методы-конструкторы. Классы, в которых объявлен метод-констуктор, будут вызывать этот метод при каждом создании нового объек |
protected | Модификатор protected позволяет обращаться к свойствам и методам только текущего класса и класса, который наследует свойства и методы текущего класса. |
private | Модификатор private позволяет обращаться к свойствам и методам только внутри текущего класса. |
public | Модификатор public позволяет обращаться к свойствам и методам отовсюду. |
public/private/protected - | модификаторы доступа для методов и свойств |
Ссылки на объект $a=new A(); | $b=& new A(); |
Сравнение объектов | Два объекта равны, если они имеют те же самые свойства и значения, а также являются экземплярами одного и того же класса. Сравнение двух объектов осущ |
class B extends A { | Ключевое слово extends говорит о том, что создаваемый класс является лишь "расширением" класса A, и не более того. То есть B содержит те же самые свой |