


Perangkap yang saya temui semasa menggunakan php7 pada tahun-tahun tersebut
Walaupun PHP telah menjadi "bahasa pengaturcaraan terbaik di dunia", beberapa cirinya masih menyebabkan kami beberapa masalah yang tidak diketahui semasa proses pembangunan. Di bawah adalah beberapa perangkap yang saya temui semasa proses pembangunan saya harap semua penonton dapat belajar daripadanya dan mengelakkan perangkap tersebut.
1. Jangan gunakan fungsi mysql_
Harinya akhirnya tiba, anda bukan sahaja "tidak sepatutnya" menggunakan fungsi mysql_. PHP 7 telah mengeluarkan kesemuanya daripada teras, yang bermaksud anda perlu berhijrah ke fungsi mysqli_ yang lebih baik, atau pelaksanaan PDO yang lebih fleksibel.
2 Jangan tulis kod sampah
Yang ini mungkin mudah difahami, tetapi ia akan menjadi semakin penting kerana peningkatan kelajuan PHP 7 mungkin menyembunyikan anda. Beberapa soalan. Jangan hanya berpuas hati dengan kelajuan tapak anda kerana berhijrah ke PHP 7 menjadikannya lebih pantas.
Sebagai pembangun, anda harus sentiasa memastikan untuk memuatkan skrip atas permintaan, menyambungkannya apabila boleh, menulis pertanyaan pangkalan data yang cekap, menggunakan caching apabila boleh dan banyak lagi.
3 Jangan gunakan teg penutup PHP di hujung fail
Anda boleh lihat, apabila fail berakhir dengan kod PHP, kebanyakan WordPress kod teras berakhir dengan Tag PHP telah dialih keluar. Malah, Rangka Kerja Zend menyahdayakannya secara khusus. PHP tidak memerlukan teg penutup pada penghujung fail dan kami boleh memastikan bahawa tiada aksara ruang putih ditambahkan pada penghujung dengan mengalih keluarnya.
4. Jangan buat rujukan lewat yang tidak perlu
Saya secara peribadi tidak suka rujukan lewat. Saya tahu bahawa kadangkala ia berguna, tetapi pada masa lain ia menjadikan kod sukar untuk difahami dan keputusan lebih sukar untuk diramalkan.
Dikatakan bahawa sesetengah orang berpendapat ia menjadikan kod berjalan lebih pantas, tetapi menurut beberapa pengaturcara senior PHP, ini tidak benar.
Contoh sebab petik adalah buruk ialah PHP mempunyai shuffle() dan sort() terbina dalam. Mereka mengubah suai tatasusunan asal dan bukannya mengembalikan tatasusunan yang diproses, yang tidak logik.
5. Jalankan pertanyaan dalam gelung
Melaksanakan pertanyaan dalam gelung adalah sangat membazir. Ia memberi tekanan yang tidak perlu pada sistem anda dan mungkin dapat mencapai hasil yang sama dengan lebih cepat di luar gelung. Apabila saya menghadapi situasi di mana saya memerlukan sesuatu seperti ini, saya biasanya menyelesaikan masalah dengan dua pertanyaan berasingan yang saya gunakan untuk membina tatasusunan data. Saya kemudian akan mengulangi tatasusunan dan tidak perlu melakukan pertanyaan dalam proses itu.
Memandangkan WordPress digunakan di sini, ia mungkin mempunyai beberapa pengecualian. Walaupun get_post_meta() akan mendapat banyak data daripada pangkalan data, anda boleh menggunakannya dalam satu gelung jika anda membuat gelung melalui metadata catatan blog tertentu. Ini kerana apabila anda mula-mula memanggilnya, WordPress sebenarnya mengambil semua metadata dan menyimpannya. Panggilan seterusnya menggunakan data cache ini tanpa membuat panggilan pangkalan data.
Cara terbaik untuk memahami perkara ini ialah membaca dokumentasi fungsi dan menggunakan alat seperti Query Monitor.
6 Jangan gunakan *
Sudah tentu, ini lebih seperti masalah MySQL, tetapi kami biasa menulis kod SQL dalam PHP, jadi ia adalah sama. Walau apa pun, jangan gunakan kad bebas dalam pertanyaan SQL jika anda boleh mengelakkannya, terutamanya jika pangkalan data mempunyai banyak lajur.
Anda harus menyatakan dengan jelas baris mana yang diperlukan dan hanya mendapatkannya. Ini membantu mengurangkan sumber yang digunakan, melindungi data dan membuat perkara sejelas mungkin.
Dengan SQL, anda perlu mengetahui semua fungsi yang ada dan menguji kelajuannya jika boleh. Apabila mengira min, jumlah, atau pengiraan berangka yang serupa, gunakan fungsi SQL dan bukannya fungsi PHP. Jika anda tidak pasti tentang kelajuan pertanyaan tertentu, uji dan cuba beberapa kompilasi lain - kemudian gunakan yang terbaik.
7. Jangan percaya input pengguna
Adalah tidak bijak untuk mempercayai input pengguna. Sentiasa sahkan, tapis, larikan diri, semak dan tinggalkan jalan keluar. Terdapat tiga masalah dengan data pengguna: kami pembangun tidak mempertimbangkan setiap kemungkinan, ia selalunya tidak betul dan ia boleh dikompromi dengan sengaja.
Sistem yang difikirkan dengan baik melindungi daripada ancaman ini. Pastikan anda menyemak nilai yang sesuai menggunakan fungsi terbina dalam seperti filter_var(), dan escape (atau precompile) apabila berurusan dengan pangkalan data.
WordPress mempunyai beberapa fungsi untuk menyelesaikan masalah. Lihat artikel Mengesahkan, melarikan diri dan menapis data pengguna untuk mendapatkan butiran.
8 Jangan cuba menjadi pintar
Matlamat anda hendaklah menulis kod elegan yang menyatakan niat anda dengan lebih jelas. Anda mungkin boleh mengoptimumkan 0.01 saat daripada setiap halaman dengan memendekkan semuanya kepada pembolehubah satu perkataan, menggunakan berbilang lapisan logik ternary dan cara lain. Tetapi ini hanya akan menimbulkan masalah besar untuk anda dan orang di sekeliling anda.
Namakan pembolehubah dengan bijak, dokumentasikan kod anda dan utamakan kejelasan daripada ringkas. Lebih baik menggunakan kod berorientasikan objek standard, iaitu lebih kurang dokumen itu sendiri, tanpa memerlukan sekumpulan nilai sebaris.
9 Jangan cipta semula roda
PHP telah wujud sejak sekian lama dan tapak web telah wujud lebih lama lagi. Kemungkinannya, apa sahaja yang anda perlukan untuk membina, seseorang telah membinanya sebelum ini. Jangan takut untuk meminta sokongan daripada orang lain, Github adalah rakan anda, begitu juga Komposer, dan begitu juga Packagist.
Dari alatan pengelogan kepada alat pembetulan warna, daripada penganalisis prestasi kepada rangka kerja ujian unit, daripada Mailchimp API kepada Twitter Bootstrap, semuanya boleh didapati dengan menekan kekunci (atau menaip arahan), gunakannya!
10 Jangan abaikan bahasa lain
Jika anda seorang pengaturcara PHP, apabila anda boleh memahami HTML, CSS, JavaScript dan MySQL dengan lebih baik. Tiba masanya untuk belajar JavaScript sekali lagi. JavaScript bukan jQuery, dan anda harus mempelajari JavaScript dengan betul untuk menggunakannya dengan lebih cekap.
Terdapat juga PHP berorientasikan objek, yang menjimatkan masa dan menjadi lebih baik apabila saiz kod lebih besar. Untuk bahasa seperti C# dan Java, ia juga lebih mudah difahami selepas anda memahami OOP.
Perluaskan pengetahuan anda dengan mempelajari tentang pengurus pakej, bina skrip, CoffeeScript, LESS, SASS, YAML, enjin skrip dan alatan berkuasa lain. Saya sangat mengesyorkan anda untuk melihat rangka kerja lain, terutamanya Laravel.
Bagaimana pula dengan mempelajari pembangunan aplikasi Ruby, RoR, Android, iPhone dan Windows Phone semasa anda menggunakannya untuk menyelesaikan sesuatu dengan cemerlang? Anda mungkin fikir ini tidak berguna kerana mereka berada di luar zon selesa anda dan apa yang diperlukan oleh pekerjaan itu, tetapi itulah hakikatnya. Setiap bahasa mempunyai beberapa perkara praktikal untuk dipelajari, serta perkara baharu yang tidak pernah anda temui sebelum ini.
Atas ialah kandungan terperinci Perangkap yang saya temui semasa menggunakan php7 pada tahun-tahun tersebut. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara memasang sambungan mongo dalam php7.0: 1. Buat kumpulan pengguna dan pengguna mongodb 2. Muat turun pakej kod sumber mongodb dan letakkan pakej kod sumber dalam direktori "/usr/local/src/" 3. Masukkan direktori "src/" 4. Buka zip pakej kod sumber 5. Buat direktori fail mongodb 6. Salin fail ke direktori "mongodb/" 7. Buat fail konfigurasi mongodb;

Dalam php5, kita boleh menggunakan fungsi fsockopen() untuk mengesan port TCP. Fungsi ini boleh digunakan untuk membuka sambungan rangkaian dan melakukan beberapa komunikasi rangkaian. Tetapi dalam php7, fungsi fsockopen() mungkin menghadapi beberapa masalah, seperti tidak dapat membuka port, tidak dapat menyambung ke pelayan, dsb. Untuk menyelesaikan masalah ini, kita boleh menggunakan fungsi socket_create() dan fungsi socket_connect() untuk mengesan port TCP.

Untuk menyelesaikan pemalam yang tidak menunjukkan isu yang dipasang dalam PHP 7.0: Semak konfigurasi pemalam dan dayakan pemalam. Mulakan semula PHP untuk menggunakan perubahan konfigurasi. Semak kebenaran fail pemalam untuk memastikan ia betul. Pasang kebergantungan yang hilang untuk memastikan pemalam berfungsi dengan betul. Jika semua langkah lain gagal, bina semula PHP. Punca lain yang mungkin termasuk versi pemalam yang tidak serasi, memuatkan versi yang salah atau isu konfigurasi PHP.

Penyelesaian biasa untuk persekitaran pelayan PHP termasuk memastikan versi PHP yang betul dipasang dan fail yang berkaitan telah disalin ke direktori modul. Lumpuhkan SELinux buat sementara waktu atau selama-lamanya. Semak dan konfigurasikan PHP.ini untuk memastikan sambungan yang diperlukan telah ditambah dan disediakan dengan betul. Mulakan atau mulakan semula perkhidmatan PHP-FPM. Semak tetapan DNS untuk isu penyelesaian.

Cara memasang dan menggunakan php7.0: 1. Pergi ke laman web rasmi PHP untuk memuat turun versi pemasangan yang sepadan dengan sistem tempatan 2. Ekstrak fail zip yang dimuat turun ke direktori yang ditentukan 3. Buka tetingkap baris arahan dan pergi ke direktori "E:\php7" Hanya jalankan arahan "php -v".

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Punca dan penyelesaian untuk kesilapan Apabila menggunakan PECL untuk memasang sambungan dalam persekitaran Docker Apabila menggunakan persekitaran Docker, kami sering menemui beberapa sakit kepala ...

Berbanding dengan PHP7, PHP8 mempunyai beberapa kelebihan dan penambahbaikan dari segi prestasi, ciri baharu dan penambahbaikan sintaks, sistem jenis, pengendalian ralat dan sambungan. Walau bagaimanapun, memilih versi yang hendak digunakan bergantung pada keperluan khusus anda dan keadaan projek. Pengenalan terperinci: 1. Peningkatan prestasi, PHP8 memperkenalkan pengkompil Just-in-Time (JIT), yang boleh meningkatkan kelajuan pelaksanaan kod 2. Ciri baharu dan penambahbaikan sintaks, PHP8 menyokong pengisytiharan parameter yang dinamakan dan parameter pilihan, membuat fungsi Panggilan adalah lebih fleksibel kelas tanpa nama, jenis pengisytiharan sifat, dsb.
