PHP mendukung kelas dan konstruksi berorientasi objek lainnya.
class exampleClass public static $ foo; $ bar publik; fungsi publik regularFunction () echo $ this-> bar; public static function staticFunction () echo self :: $ foo; fungsi public static anotherStatFn () self :: staticFunction (); public function regularFnUsingStaticVar () echo self :: $ foo; // CATATAN: Pada PHP 5.3 menggunakan $ this :: $ bar sebagai ganti self :: $ bar diizinkan exampleClass :: $ foo = "Hello"; $ obj = new exampleClass (); $ obj-> bar = "Dunia!"; exampleClass :: staticFunction (); / * mencetak Hello * / $ obj-> regularFunction (); / * mencetak Dunia! * /
Fungsi statis hanya dapat menggunakan variabel statis. Fungsi dan variabel statis dirujuk via diri::functionName () atau diri::nama variabel. Dalam contoh yang ditunjukkan di atas, variabel statis dirujuk dengan nama kelas (exampleClass :: $ foo) atau, dengan a diri:: (self :: $ foo) bila digunakan dalam metode statis [bernama staticFunction ()] dari kelas.
Fungsi dan variabel reguler suatu kelas membutuhkan konteks objek untuk direferensikan. Mereka tidak dapat eksis tanpa konteks objek. Konteks objek disediakan oleh $ ini. Dalam contoh di atas, $ bar adalah variabel reguler dan karenanya dirujuk sebagai $ obj-> bar (dalam konteks objek dengan variabel obj) atau sebagai $ this-> bar (lagi dalam konteks objek dalam metode objek).
diri tidak menggunakan pendahulunya $ karena diri tidak berkonotasi variabel tetapi kelas membangun itu sendiri. $ ini referensi variabel tertentu sehingga memiliki pendahulunya $.