php是一种单继承语言,为了解除这个限制,从5.4开始,php引入了trait。trait是为单继承语言而准备的一种代码复用机制。
/*** 当我们数据库的数据不想删除的时候,就可以使用软删除方法,就是修改数据的显示状态,并不是真实的删除数据* Trait SoftDelete*/trait SoftDelete{public function delete(){//软删除return $sql = "update users set delete_time='".time()."' where id=1";}}trait SoftDelete1{public function delete(){//软删除return $sql = "update users set delete_time='".time()."' where id=2";}}// 模型类class Model{//真实删除,数据将不存在public function delete(){return $sql = "delete from users where id=1";}}class Db extends Model{//在类中引入traituse SoftDelete;//引入多个trait,当两个trait中有相同方法时,需要用insteadof来指定需要使用哪一个,下面的意思是,用SoftDelete1中的delete方法代替SoftDelete中的delete方法/*use SoftDelete,SoftDelete1{SoftDelete1::delete insteadof SoftDelete;}*/}$db = new Db();echo $db->delete();/*** 输出“update users set delete_time='1632269700' where id=1”,Trait里的方法覆盖了模型Model的方法,需要注意一点,如果Db类里也有delete方法,会覆盖Trait里的delete方法。* 当前类中的方法优先级是最高的。*/
以上是本文的全部内容,有问题可以在评论区留言交流,大家可以分享关注。
文章转载自半度爱微凉,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




