__construct — конструктор
Функция-конструктор вызывается сразу же при создании экземпляра класса. Классический пример:
Код:
class A {
public function __construct() {
print __METHOD__. '<br />';
}
}
$a = new A();
Результат:
A::__construct
__destruct — деструктор
Функция-деструктор вызывается автоматически при завершении работы скрипта, когда PHP очищает память от всех классов и переменных. Пример:
Код:
class A {
public function __construct() {
print __METHOD__. '<br />';
}
public function f() {
print __METHOD__. '<br />';
}
public function __destruct() {
print __METHOD__. '<br />';
}
}
$a = new A();
$a->f();
Результат:
A::__construct
A::f
A::__destruct
__call — охренительный магический метод
С этих строк начинается подлинная магия. Магический метод __call позволяет вызывать из класса функции, которые де-факто в нём не существуют. Для этого можно придумать миллионы различных применений. Одно из них мы рассматрим на примере, который я приводил в самом начале.