Tidak seperti banyak bahasa pemrograman lainnya, PHP tidak memiliki pemikiran pemersatu atau serangkaian ide inti: PHP dimulai sebagai kumpulan skrip perl yang sangat pragmatis, dan fitur ditambahkan sesuai kebutuhan, tanpa banyak proses desain formal. Hasilnya adalah bahasa yang cukup bermanfaat dan lengkap, tetapi tidak terlalu konsisten dengan sendirinya. Popularitas bahasa yang luar biasa itu memperburuk keadaan; segera setelah fitur baru diperkenalkan, secara praktis diatur dalam batu, karena semua orang mulai menggunakannya. Beberapa kesalahan desain telah dikonsolidasikan, dan tim PHP memiliki waktu yang sangat sulit membuat orang menjauh dari mereka - register_globals
dan magic_quotes
hanya dua contoh hal-hal yang tampak seperti ide bagus pada saat itu tetapi ternyata merajalela.
Faktor lain adalah budaya yang tumbuh di sekitar PHP. Ketika popularitasnya mulai tumbuh, kasus penggunaan khas untuk PHP adalah menambahkan potongan kecil fungsi sisi server ke dalam dokumen HTML yang statis. Sebagian besar audiens target adalah penggemar dan bukan pemrogram yang menggunakan PHP untuk menambahkan sedikit hal dinamis ke situs web statis mereka. Budaya yang dihasilkan sangat pragmatis, tanpa banyak minat untuk membangun 'cara yang tepat'; Meskipun dimungkinkan untuk menulis PHP yang cukup elegan, sebagian besar komunitas pengguna tidak begitu tertarik padanya, asalkan berfungsi.
Sebaliknya, bahasa-bahasa seperti python, ruby, Lisp, C #, Haskell dan lainnya telah memiliki filosofi sejak awal, dan komunitas umumnya merangkulnya dan mendorong bahasa untuk menghayati itu. (Jika Anda tertarik, ketikkan import this
sesi python interaktif). Memiliki filosofi berarti ada pedoman untuk menggunakan dan memperluas bahasa, dan itu juga mengarah pada komunitas yang lebih homogen - jika Anda tidak setuju dengan filosofi, Anda lebih cenderung pergi begitu saja dan menemukan yang cocok untuk Anda. ; komunitas yang dihasilkan lebih mungkin untuk mencapai konsensus atas semua hal.
Yang mengatakan, PHP memang memiliki kekuatan dan kelemahan, serta kasus tepi tidak jelas; menulis kode PHP idiomatis berarti menggunakan kekuatan dan menghindari kelemahan dan ketidakjelasan, seperti halnya dengan bahasa lain.