您可以在此標題中添加“還”!有時,事情就是這樣,只是因為沒有人知道如何做得更好。
然而,這並不意味著一切都是好主意。
您根本無法執行以下操作:
class Child extends Parent1, Parent2 {}
但是,許多開發人員認為有更好的方法,例如使用介面強制類別實作特定行為。
請注意,您仍然可以對這些介面應用某種多重繼承(如果這對您的情況確實有意義):
interface A {} interface B {} interface C extends A, B {}
然而,對我來說,這並不是反對多重繼承的最佳論點。許多程式語言注重簡單性和可讀性而不是複雜性。
引入多重繼承可能會導致很多誤用,更不用說鑽石問題了,這對 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 適用於網路以及您可能知道的許多其他創意用途。
我希望它能保持簡單性,因為它絕對是一個功能。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3