Rumah >pembangunan bahagian belakang >tutorial php >PHP: tidak, tidak mungkin

PHP: tidak, tidak mungkin

WBOY
WBOYasal
2024-07-19 14:14:01811semak imbas

PHP: no, it

Anda boleh menambah "belum" pada tajuk ini! Kadang-kadang, keadaan adalah apa adanya semata-mata kerana tiada siapa yang tahu cara untuk melakukan yang lebih baik.

Namun, ini tidak bermakna semuanya adalah idea yang bagus.

PHP tidak menyokong berbilang warisan

Anda tidak boleh melakukan perkara berikut:

class Child extends Parent1, Parent2 {}

Walau bagaimanapun, ramai pembangun berpendapat terdapat pendekatan yang lebih baik, seperti menggunakan antara muka untuk memaksa kelas melaksanakan gelagat tertentu.

Perhatikan bahawa anda masih boleh menggunakan beberapa jenis warisan berbilang pada antara muka tersebut (jika itu benar-benar masuk akal dalam kes anda):

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

Walau bagaimanapun, itu bukan hujah terbaik terhadap pelbagai warisan, bagi saya. Banyak bahasa pengaturcaraan menumpukan pada kesederhanaan dan kebolehbacaan berbanding kerumitan.

Memperkenalkan pelbagai warisan boleh menyebabkan banyak penyalahgunaan, apatah lagi masalah Diamonds, yang akan menjadi masalah untuk bahasa peringkat tinggi seperti PHP.

Adalah yang terbaik jika anda boleh mengelakkan kerumitan yang tidak perlu.

PHP tidak menyokong multi-threading

Banyak bahasa pengaturcaraan menyediakan alatan terbina dalam untuk melaksanakan berbilang urutan pada masa yang sama (cth., Java, C++).

Pthreads cuba memperkenalkan multi-threading dalam PHP tetapi Joe Watkins pencipta pthreads dan selari mengumumkan pada Februari 2019 bahawa:

pthread tidak akan dikekalkan lagi selepas PHP 7.4 disebabkan oleh kecacatan seni bina.

Sumber: dokumentasi PHP - phtreads

Jika anda ingin menggali lebih lanjut, anda boleh menyemak selari, yang diilhamkan oleh Go concurrency.

Walaupun selari cukup menarik, adakah anda benar-benar memerlukan kerumitan sedemikian dalam kes anda?

Jika anda memerlukan mekanisme terbina dalam untuk pemprosesan tak segerak, ia kini boleh dilakukan dengan Fibers (sejak PHP 8.1).

Serat membolehkan anda menulis fungsi yang boleh terganggu.

Walaupun Fibers agak hebat, adakah anda benar-benar memerlukan kerumitan sedemikian dalam kes anda?

Menggunakan penyelesaian pihak ketiga seperti ReactPHP atau Swoole boleh menjadi pilihan yang lebih baik, terutamanya jika anda hanya memerlukan gelung acara.

Lebih baik daripada itu, anda boleh membina mekanisme baris gilir yang boleh mengendalikan mesej dan mencuba semula kerja yang gagal.

Klien HTTP komponen Symfony juga menyokong pelbagai operasi tak segerak (cth., permintaan/tindak balas berganda tak segerak dan distrim serentak).

PHP tidak dimaksudkan untuk pemprosesan masa nyata

PHP ialah bahasa yang ditafsirkan, yang tidak serasi dengan operasi intensif dan sistem yang memerlukan kependaman rendah dan kebolehramalan yang tinggi.

Walaupun benar, mengapa anda menggunakan PHP untuk Perdagangan Frekuensi Tinggi, penstriman, permainan dalam talian atau penyeliaan mesin dan proses peringkat tinggi?

Bungkus

PHP dimaksudkan untuk web dan banyak kegunaan kreatif lain yang mungkin anda ketahui.

Saya harap ia akan mengekalkan kesederhanaannya, kerana ia sememangnya satu ciri.

Atas ialah kandungan terperinci PHP: tidak, tidak mungkin. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn