ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Классы и объекты. Часть Третья.


28-12-2009

При объявлении свойства тип данных не объявляется. Эта переменная, как и все другие переменные в PHP, может хранить целые или вещественные числа, строки или даже другой объект. В зависимости от ситуации рядом с объявлением свойства можно поместить уместный комментарий о предназначении типа данных.
При объявлении метода это делается так, как при объявлении функции за пределами объявления класса. Как методы, так и свойства действуют только в пределах своих собственных диапазонов или пространств имен. Это значит, что можно создавать методы, имена которых совпадают с именами функций, объявленных за пределами определения класса, и конфликтов возникать не должно. Например, класс может определять метод date. Но методы нельзя именовать с использованием ключевых слов PHP (for или while).
Методы класса могут содержать то, что в PHP называется подсказками типа (type hints). Подсказка типа представляет собой класс, который предшествует аргументу метода. Если сценарий вызывает метод и передает переменную, которая не является экземпляром указанного класса, PHP генерирует фатальную ошибку. Подсказку типа можно не указывать для других типов, таких как целое, строковое или логическое. В настоящее время идут споры о том, включать ли в подсказки типов тип массива.
Подсказка типа является ссылкой для проверки типа аргумента с помощью специальных функций или оператора instanceof. Вы всегда можете вернуться к этому методу. Собственноручная проверка типа позволит вам, например, сделать аргумент целым. В листинге 6.2 демонстрируется использование подсказок типа для того, чтобы класс Assembler создавал только экземпляры Widget. 
| Листинг 6.2. Подсказки типа_
<?php
//Для класса Widget требуется вспомогательный класс class Widget
{
public $name='none'; public $created=FALSE;
}
//Класс Assembler создает только экземпляры widget class Assembler
{
public function make(Widget $w)
{
print("Создание $w->name<br>n");
$w->created=TRUE;
}
}
//Создать widget $thing = new Widget; $thing->name = 'Gadget'; //Собрать widget Assembler::make($thing);
?>

Кроме переменных, передаваемых как аргументы, методы содержат специальную переменную this, которая предназначена для использования с определенным экземпляром класса. Переменную this необходимо использовать для ссылки на свойства и другие методы объекта. В некоторых объектно-ориентированных языках программирования считается, что неквалифицированные переменные имеют отношение к локальному свойству, но в PHP любые переменные, на которые делается ссылка в пределах метода, являются локальными для этого диапазона. Как используется переменная this в конструкторе для класса user, см. в листинге 6.1.
Перед объявлением свойств и методов PHP проверяет тип доступа, а именно: public, private и protected. Кроме того, элемент можно объявить с ключевым словом static, а можно объявить константы в пределах классов с использованием константы const. Обсуждение различных типов доступа будет продолжено в этой главе позднее. Свойства можно перечислить в одной строке, разделив их запятыми. В листинге 6.1 класс User хранит два свойства типа доступа private, объявленные как private $password, $lastLogin.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Классы и объекты. Часть Вторая. PHP. Классы и объекты. Часть Четвёртая.