ТОП-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

6.2. Объектная модель PHP 5
PHP 5 использует перезагружаемую модель объектов с односторонним наследованием и ограничением доступа. Наследование включает взаимосвязь между классами типа "родитель-потомок". (Концепция наследования будет обсуждаться позднее в этой главе.) Если в других языках разрешено использование нескольких классов, то в PHP допускается только по одному "родителю". Кроме того, PHP поддерживает ограничение доступа к свойствам и методам. Элементы можно объявить "частными", тем самым запретив доступ к классу извне. И наконец, PHP позволяет порожденным классам перезагружать элементы порождающих их классов.
Объектная модель в PHP 5 рассматривает объекты отдельно от любого другого типа значения, которое имеется в PHP, и реализует неявное поведение типа "переход по ссылке", т.е. PHP не требует от вас явной передачи или возвращения объектов по ссылке. Объяснение перехода на объектную модель, опирающуюся на дескрипторы, детально обсуждается в конце настоящей главы. Это одна из самых важных новых возможностей PHP 5.
Кроме обеспечения более интуитивной объектной модели, всякая система, опирающаяся в своей работе на дескрипторы, имеет дополнительные преимущества: повышенную производительность, снижение потребления памяти и возросшую гибкость.
В предыдущих версиях PHP сценарии копируют объекты по умолчанию. Если такая возможность не нарушает логику вашего проекта, то PHP значительно упростит перенос больших объемов данных. Сейчас PHP перемещает только дескриптор, что требует значительно меньше времени и увеличивает производительность конкретного сценария, так как позволяет не прибегать к ненужному копированию. Преимущество производительности возрастает параллельно со сложностью иерархии объектов. Чем меньше копий, тем меньше для них требуется памяти. Это может привести к возрастанию производительности системы в целом, поскольку больше памяти остается в распоряжении всех остальных процессов.
Процессор Zend Engine 2 обладает еще большей гибкостью. В результате новой разработки появились деструкторы, методы классов, которые срабатывают непосредственно перед разрушением объекта. Это также дает преимущества с точки зрения использования памяти, так как PHP теперь точно "знает", когда не осталось ссылок на объект, позволяя ему освободить память для других целей.
6.3. Определение класса
Определяя класс, вы на самом деле создаете шаблон для создания объектов. В нем дается перечень всех переменных, которые будет иметь данный объект, и все функции, которые потребуются ему для работы. Они называются свойствами и методами соответственно. На рис. 6.1 показана форма определения классов. Заметим, что внутри фигурных скобок можно объявлять только переменные или функции. В листинге 6.1 показано объявление класса с тремя свойствами и двумя методами.
Классы и объекты
I Листинг 6.1. Объявление класса_
<?php
//Определить класс для отслеживания активности пользователей
class User
{
//свойства public $name;
private $password, $lastLogin; //методы
public function _construct($name, $password)
{
$this->name = $name; $this->password = $password; $this->lastLogin = time(); $this->accesses++;
}
// получить дату последнего входа в систему function getLastLogin()
{
return(date("M d Y", $this->lastLogin));
}
}
//создать экземпляр
$user = new User("Leon", "sdf123");
// получить дату последнего входа в систему
print($user->getLastLogin() ."<br>n");
// распечатать имя пользователя
print("$user->name<br>n");
?>

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



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