」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > PHP:不,不可能

PHP:不,不可能

發佈於2024-07-31
瀏覽:723

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 可讓您編寫可中斷的函數。

雖然 Fibers 非常酷,但您的情況真的需要如此複雜嗎?

使用 ReactPHP 或 Swoole 等第三方解決方案可能是更好的選擇,特別是當您只需要事件循環時。

更好的是,您可以建立一個可以處理訊息並重試失敗作業的佇列機制。

Symfony 元件 HTTP 用戶端也支援各種非同步操作(例如並發非同步流程和多路復用請求/回應)。

PHP 不適合即時處理

PHP是解釋型語言,不相容密集操作和需要低延遲、高可預測性的系統。

雖然確實如此,但為什麼要使用 PHP 進行高頻交易、串流媒體、線上遊戲或機器和流程的高級監控?

包起來

PHP 適用於網路以及您可能知道的許多其他創意用途。

我希望它能保持簡單性,因為它絕對是一個功能。

版本聲明 本文轉載於:https://dev.to/spo0q/php-no-its-not-possible-4ji6?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3