购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 类和对象

什么是对象?我们还可以这样理解,它是一些代码的属性和方法的堆砌。对象类似于一个数组,数组可以存储属性(数组被称为键(key)),对象比数组多出一些方法,它们可以隐藏或开放存取,这在数组里是做不到的。

对象是一个数据结构,可以建立一个松散耦合或多个紧耦合。我们来看一段PHP面向对象的代码。这是一个简单的类,功能是发邮件给用户,如代码清单2-1所示:

代码清单2-1 一个邮件发送类


<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 "邮件已经成功发送到      {$recipient}<br/>"
            }
      }
}>

上面的类中包含4个私有属性和4个公共方法,这些方法主要都用来处理邮件的收件人。我们现在来使用这个类,如代码清单2-2所示:

代码清单2-2 创建emailer类的实例对象


include'class.emailer.php');
$emailer = new emailer"jobs@21cto.com"); //创建新对象
$emailer->addRecipients"job@21cto.com"); //访问方法 
//给一些方法发送参数
$emailer->setSubject"我要找工作");
$emailer->setBody"你好,老弟,你还好吗?");
$emailer->sendEmail();
  

可以看到,上面的代码片段的可读性都比面向过程方式清晰,从而使代码易于管理维护。知名的CMS与博客软件WordPress的开发者在他的网站上写的座右铭:“编码如诗”,你我都是作诗的人,不是么? 8ZrI/VBHwW9Qjr+mpLO25RQAgjCQ3YiQ4rV0fRvG8KOB/dcSYHzcUC9wxPaKOEPq

点击中间区域
呼出菜单
上一章
目录
下一章
×