Создание нескольких объектов
В качестве параметра функции можно указывать объект другого (или того же самого) класса.
<?php ## Пример класса с методом,
class Math_Complex {
public $re, $im;
// Добавляет к текущему комплексному числу другое,
function add(Math_Complex $y) {
$this->re += $y->re;
$this->im += $y->im;
}
// Преобразует число в строку (например, для вывода).
function __toString() {
return "({$this->re}, {$this->im})";
}
}
?>
Мы явно указали перед параметром $у тип Math_Complex. Это говорит РНР, что мы можем передавать в данную функцию только объекты этого класса, но не другого. Указывать типы аргументов можно с пятой версии РНР. Например, при попытке указать вместо $у целое число мы получим ошибку во время исполнения программы:
$obj->add(1);
Fatal error: Argument 1 must be an object of class Math_Complex
В отличие от таких языков, как C++ и Java, в РНР не поддерживается создание в одном классе нескольких методов с одинаковым именем, которые бы различались только типами и количеством аргументов.
Перегрузка преобразования в строку
В РНР существует ряд имен методов, начинающихся с двойных подчерков, которые имеют специальное значение. Функция __tostring() вызывается РНР автоматически всякий раз, когда мы затребуем неявное преобразование ссылки на объект в строку.
Дата добавления: 2015-08-26; просмотров: 666;