Old_function

Оператор OLD_FUNCTION позволяет вам определяить функцию использую синтаксис PHP/FI2 (за исключением того, что вы должны заменить 'function' на 'old_function').

Это свойство только для совместимости и должно использоваться лишь конверторами PHP/FI2 -> PHP3.

Описанные таким образом функции не могут быть вызваны из служебного кода PHP. Это к тому же значит, что вы не можете использовать их в функциях типа usort(), array_walk() и register_shutdown_function(). Вы можете обойти это путЈм введения специальной функции в терминах PHP3, которая будет вызывать OLD_FUNCTION.

CLASS

Класс - это набор переменных и функций, работающих с этими переменными. Класс определяется следующим образом :

<?phpclass Cart { var $items; // Количество вещей в корзине покупателя // Добавить $num наименований типа $artnr в корзину function add_item ($artnr, $num) { $this->items[$artnr] += $num; } // Убрать $num наименований $artnr из корзины function remove_item ($artnr, $num) { if ($this->items[$artnr] > $num) { $this->items[$artnr] -= $num; return true; } else { return false; } }}?>

Это определения класса Cart, который состоит связного списка наименований товаров в корзине и двух функций для добавления и удаления вещей из корзины.

Классы это типы, то есть, заготовки для реальных переменных. Вы должны создавать переменные желаемого типа, используя оператор new :

$cart = new Cart;$cart->add_item("10", 1);

Таким образом, мы создали объект $cart класса Cart. Функция add_item() этого объекта вызывается для добавления 1 товара номер 10 к корзине.

Классы могут быть расширениями других классов. Расширенный класс обладает всеми переменными и функциями базового класса и тем, что вы определите при расширении класса. Это делается используя ключевое слово extends :

class Named_Cart extends Cart { var $owner; function set_owner ($name) { $this->owner = $name; }}

Это определяет класс Named_Cart, который имеет все переменные и функции класса Cart плюс дополнительную переменную $owner и дополнительную функцию set_owner(). Вы можете создать поименованую корзину обычным образом и установить или получить владельца корзины. Также вы можете использовать и нормальные функции корзины в поименованой корзине :

$ncart = new Named_Cart; // Создать корзину$ncart->set_owner ("kris"); // Указать владельцаprint $ncart->owner; // Распечатать имя владельца корзины$ncart->add_item ("10", 1); // (унаследовано из обычной корзины)

Внутри функций класса переменная $this означает сам объект. Вы должны использовать $this->нечто для доступа к переменной или функции с именем 'нечто' внутри объекта.

Конструкторы это функции в классе, которые автоматически вызываются, когда вы создаЈте новую переменную данного класса. Функция становится классом, когда она имеет такое же имя, как и сам класс.

class Auto_Cart extends Cart { function Auto_Cart () { $this->add_item ("10", 1); }}

Мы определили класс Auto_Cart который является тем же классом Cart плюс имеет конструктор, который инициализирует корзину при создании, наполняя еЈ одним товаром типа "10". Конструкторы также могут иметь аргументы, и эти аргументы могут быть необязательными, что делает конструктор более полезным :

class Constructor_Cart { function Constructor_Cart ($item = "10", $num = 1) { $this->add_item ($item, $num); }} // Покупаем вся одно и то же :

$default_cart = new Constructor_Cart; // А тут что-то новое : $different_cart = new Constructor_Cart ("20", 17);

Наши рекомендации