PHP:不,不可能

WBOY
發布: 2024-07-19 14:14:01
原創
785 人瀏覽過

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中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!