gpt4 book ai didi

laravel - Laravel 中的契约(Contract)和 PHP 中的接口(interface)有什么区别?

转载 作者:行者123 更新时间:2023-12-04 01:20:21 24 4
gpt4 key购买 nike

据我所知,Laravel 将它扩展的接口(interface)称为契约(Contract),因为它们被 Laravel 使用。但这似乎有点像循环推理。仅仅因为您的项目使用它而更改现有 PHP 功能的术语并没有增加任何值(value)。

还有更多的东西吗?为标准 PHP 功能创造一个新术语背后的逻辑是什么?或者接口(interface)中是否存在一些合约功能?

编辑 : 澄清一下,我在文档中使用 Contract 作为专有名词让我感到困惑,正如我对 Thomas's post 的评论中所解释的那样。

最佳答案

“契约(Contract)”并不是泰勒创造的一些新术语。这是程序员使用的一个非常常见的术语。

接口(interface)是契约,但契约不一定是接口(interface)。简而言之,接口(interface)定义了类必须实现的契约。

抽象类也是契约。不同之处在于抽象类可以提供实际的实现、状态等,因此(在某种意义上)它是一个更严格的契约。

另一个关键区别是子类只能扩展 1 个抽象类,但它可以实现多个接口(interface)。

所以基本上,“契约(Contract)”不是一个新的命名约定。这是泰勒使用的常用术语。

关于laravel - Laravel 中的契约(Contract)和 PHP 中的接口(interface)有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34072046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com