Блог веб-разработчика: в помощь программистам

Понятие Объекта в ООП

Всё же что такое объект? Собственно это ничто иное как кусок кода с группой свойств и методов. Возникает вопрос – так что объект тоже что и массив, ведь массив тоже может хранить данные определяемые свойствами (они называются ключами)? Нет, объект это что-то весьма большее чем массив, потому что он может хранить методы внутри себя. Объект может отображать их или наоборот – скрывать, а в массивах такая возможность не предусмотрена. Объект это нечто сопоставимое со структурой данных и объект может объединять множество других объектов в себе а также создавать жёсткую взаимосвязь между ними или наоборот делать свободную связь между объектами.

Давайте посмотрим как выглядит объект в 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("[email protected]"); //конструктор  $emailer->addRecipients("[email protected]"); //методы доступа  $emailer->setSubject("тест");  $emailer->setBody("привет ну как разобрался с объектами?");  $emailer->sendEmail();  ?>

Код довольно легко читается и понимается не правда?

You can follow any responses to this entry through the RSS 2.0 feed.