ajax => client side scripting
php => server side scripting
php bertugas memproses semua yang berhubungan dengan backend seperti query sql, dll
sedangkan ajax itu biasanya hanya dibuat untuk menampilkan aja.
contohnya bgini.
pengecekan username.
pada saat user telah selesai menginput username (lostfocus), maka jika menggunakan ajax. ajax ini lah yang bertugas mengirimkan teks yang diinput oleh user ke server tanpa merefresh page secara keseluruhan. dan setelah teks ini sampai ke server. sekarang tugas nya php untuk mengecek kedatabase apakah username ini sudah ada digunakan oleh user lain. dan hasil nya kemudian dikirimkan kembali ke client dan ditangkap oleh ajax. disinilah ajax kembali menampilkan apakah username tersebut masih tersedia atau belum.
trus kalau ditanya yang mana lebih baik digunakan. yah sebaiknya gunakan saja kedua-duanya karena mereka mempunyai tugasnya sendiri.
CMIIW
*sorry kalau penjelasannya kurang bisa dimengerti