首页  >  文章  >  后端开发  >  PHP:不,不可能

PHP:不,不可能

WBOY
WBOY原创
2024-07-19 14:14:01787浏览

PHP: no, it

您可以在此标题中添加“还”!有时候,事情就是这样,只是因为没有人知道如何做得更好。

但是,这并不意味着一切都是好主意。

PHP不支持多重继承

您根本不能执行以下操作:

class Child extends Parent1, Parent2 {}

但是,许多开发人员会认为有更好的方法,例如使用接口强制类实现特定行为。

请注意,您仍然可以对这些接口应用某种多重继承(如果这对您的情况确实有意义):

interface A {}
interface B {}
interface C extends A, B {}

但是,对我来说,这并不是反对多重继承的最佳论据。许多编程语言注重简单性和可读性而不是复杂性。

引入多重继承可能会导致很多误用,更不用说钻石问题了,这对于 PHP 等高级语言来说会是个问题。

最好能避免不必要的复杂性。

PHP不支持多线程

许多编程语言提供内置工具来同时执行多个线程(例如Java、C++)。

Pthreads 试图在 PHP 中引入多线程,但 pthreads 和并行的创建者 Joe Watkins 在 2019 年 2 月宣布:

由于架构缺陷,PHP 7.4 之后将不再维护 pthreads。

来源:PHP 文档 - phtreads

如果你想进一步挖掘,你可以查看parallel,它的灵感来自于Go并发。

虽然并行非常酷,但您的情况真的需要如此复杂吗?

如果您需要异步处理的内置机制,现在可以使用 Fibers(自 PHP 8.1 起)。

光纤允许您编写可中断的函数。

虽然 Fibers 非常酷,但您的情况真的需要如此复杂吗?

使用 ReactPHP 或 Swoole 等第三方解决方案可能是更好的选择,特别是当您只需要事件循环时。

比这更好的是,您可以构建一个队列机制来处理消息并重试失败的作业。

Symfony 组件 HTTP 客户端还支持各种异步操作(例如,并发异步流和多路复用请求/响应)。

PHP 不适合实时处理

PHP 是一种解释性语言,不兼容密集型操作以及需要低延迟和高可预测性的系统。

虽然这是事实,但为什么要使用 PHP 进行高频交易、流媒体、在线游戏或机器和流程的高级监控?

包起来

PHP 旨在用于网络和您可能知道的许多其他创意用途。

我希望它能保持简单性,因为它绝对是一个功能。

以上是PHP:不,不可能的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn