Smart猫小萌
我也遇到过,一开始只有一两种状态,后来越来越多,每加一个状态,凡是要做状态判断的地址都要改......后来我把 status 写成一个类, 类似下面我写的一个 democlass Status{ public static $all_status = array( 0 => array( 'label' => '未发布', 'value' => 0, 'point' => 1, # 分数
'private' => true # 只有自己能看
), 1 => array( 'label' => '待审核', 'value' => 1, 'point' => 2, # 分数
'private' => true # 只有自己能看
), 2 => array( 'label' => '已发布', 'value' => 2, 'point' => 10, # 分数
'private' => false # 只有自己能看
),
); public function __construct($status)
{ $this->status = self::$all_status[$status];
} /** 是否可以展示 */
public function canShow()
{ if($this->status['private'] === false) { return true;
} return false;
} /** 其他判断 */
public function canDoSomething()
{ # ...
return true;
}
}
$article = array( 'content' => '文章内容', 'title' => '文章标题', 'status' => 2);
$statusObj = new Status($article['status']);if($statusObj->canShow()){
showArticle($article)
}这样有增减status的时候可以少做一些修改,如果有比较好的方法,顺便@我一下