最近我一直在努力学习PHP,我发现自己对特性很感兴趣.我理解水平代码重用的概念,不想从抽象类继承.我不明白的是:使用trait 和界面之间的关键区别是什么?

我试着搜索一篇像样的博客文章或文章,解释何时使用其中的一种或另一种,但到目前为止我找到的例子似乎太相似了,以至于完全相同.

推荐答案

接口定义了实现类must实现的一组方法.

当一个特征是use时,方法的实现也会出现——这在Interface中不会发生.

这是最大的不同之处.

Horizontal Reuse for PHP RFC人中:

Traits是PHP等单一继承语言中的代码重用机制.Trait旨在通过使开发人员能够在不同类层次 struct 中的多个独立类中自由重用方法集来减少单一继承的一些限制.

Php相关问答推荐

如何在产品首页的产品标题下显示可变产品的自定义字段

try 修改这个PHP代码如果语句在WordPress""

Laravel:启动下载并同时在Blade 中显示Flash消息

在WooCommerce管理订单页面中显示区域名称

如何使用php-amqplib连接到ActiveMQ Classic Docker镜像

Laravel 10 -扩展现有的artisan命令?

如何将WooCommerce产品属性术语名称显示为链接术语?

PHP从响应应用程序json获取文件代码和URL

如何在execute语句中使用存储过程参数?

基于服务器的不同地平线配置

shell_exec运行大型数据处理

WooCommerce:如果购物车中已存在产品,则增加购物车商品数量

如何在 Laravel 中app文件夹之外的文件夹内创建文件路径?

如何在 Woocommerce 中自动删除旧的已完成订单

单个产品页面 WooCommerce 订阅价格字符串的更改

AWS S3:当对象名称包含 % 时复制对象失败并出现错误 - 无效的复制源编码

PHP向API发送curl请求

我需要一个正则表达式模式来获取在不包含特定字符串后面的模式中的文本

PHP/Laravel 中的自定义时区

如何在 Laravel 9 中判断异常是否可报告?