0

我试图在几种不同类型的帖子上使用一个 php 对象。每种类型的帖子都有几个其他类型的帖子没有的额外数据成员。该对象将需要来自其他类的一些服务来检查if( $something instanceof $object ). 所以,使用扩展可能不起作用,我试图为所有人使用一个类。在对象类中,我应该将所有可能的数据成员列为默认值并将未使用的数据成员设置为空,还是忽略未使用的数据成员?

例如

class OBJ{

  // common members that share among all posts:
    public $id;
    public $url;
    public $embed_service

  //post has grade
    public $link_grade;

  //posts has license
    public $license;

  //posts has corresponding topics  
    public $comment_topic_id;

//different types of data comes from different actions, saved in one table.
} 
4

1 回答 1

0

您应该做的是使用继承并从公共对象派生不同类型的帖子:

class Post
{
  protected $Content = 'enter content';
}

class Blog extends Post
{
  protected $Categorie;
}

class Comment extends Post
{
  protected email;
}

结果是:

  • 所有类都有一个Content属性
  • blog 类有一个额外的Category属性
  • 评论类有一个额外的email 属性
于 2012-10-06T11:32:10.890 回答