Руководство по РНР 3.0

d531cab5

OLD_FUNCTION



OLD_FUNCTION

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

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

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

Класс - это набор переменных и функций, работающих с этими переменными. Класс определяется следующим образом : <?php class 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);

 

Содержание раздела