恕我直言(我可能错了,我确定我是),这是一个很好的方法:
abstract class Base{
protected $type = null;
public function setStatus($status){
$sql = "UPDATE SET `status` = '$status' FROM `table` WHERE `type` = '{$this->type}'";
}
}
class One extends Base{
protected $type = "type1";
}
class Two extends Base{
protected $type = "type2";
}
$one = new One();
$one->setStatus('pending');
$two = new Two();
$two->setStatus('died');
突然出现了一个狂野的静态方式
abstract class Base {
protected static $type = null;
public static function setStatus($status){
$sql = sprintf("UPDATE SET `status` = '$status' FROM `table` WHERE `type` = '%s'",static::$type);
}
}
class One extends Base{
protected static $type = "one";
}
class Two extends Base{
protected static $type = "two";
}
One::setStatus("idle");
Two::setStatus("dieing");