Понятие Объекта в ООП
Всё же что такое объект? Собственно это ничто иное как кусок кода с группой свойств и методов. Возникает вопрос – так что объект тоже что и массив, ведь массив тоже может хранить данные определяемые свойствами (они называются ключами)? Нет, объект это что-то весьма большее чем массив, потому что он может хранить методы внутри себя. Объект может отображать их или наоборот – скрывать, а в массивах такая возможность не предусмотрена. Объект это нечто сопоставимое со структурой данных и объект может объединять множество других объектов в себе а также создавать жёсткую взаимосвязь между ними или наоборот делать свободную связь между объектами.
Давайте посмотрим как выглядит объект в PHP. Следующий объект довольно примитивный, при помощи него можно отправлять письмо группе пользователей. В PHP5 объекты очень сильно отличаются от объектов в PHP4.
< ?
//class.emailer.php
class emailer
{
private $sender;
private $recipients;
private $subject;
private $body;
function __construct($sender)
{
$this->sender = $sender;
$this->recipients = array();
}
public function addRecipients($recipient)
{
array_push($this->recipients, $recipient);
}
public function setSubject($subject)
{
$this->subject = $subject;
}
public function setBody($body)
{
$this->body = $body;
}
public function sendEmail()
{
foreach ($this->recipients as $recipient)
{
$result = mail($recipient, $this->subject, $this->body,
"From: {$this->sender}\r\n");
if ($result) echo "Mail successfully sent to
{$recipient}
";
}
}
}
?>
Объект созданный выше содержит 4 private свойства и 3 метода доступа и наконец ещё один метод для доставки почты адресатам. Теперь давайте посмотрим как использовать созданный объект:
< ?
$emailer = new emailer("hasin@pageflakes.com"); //конструктор
$emailer->addRecipients("hasin@somewherein.net"); //методы доступа
$emailer->setSubject("тест");
$emailer->setBody("привет ну как разобрался с объектами?");
$emailer->sendEmail();
?>
Код довольно легко читается и понимается не правда?
Разработка интернет-магазинов, скриптов, SEO и повышение конвертации.