diri vs ini di PHP

PHP mendukung kelas dan konstruksi berorientasi objek lainnya. diriiniDapat digunakan dalam fungsi statis Iya Tidak variabel dan metode kelas yang dapat diakses dengan diri:: $ this-> (Perhatikan bahwa PHP> 5.3 memungkinkan penggunaan $ this dengan variabel statis gunakan $ this :: $ foo. $ this-> foo akan tetap tidak terdefinisi jika $ foo adalah var statis.) Membutuhkan objek instantiated Tidak Iya

diri vs ini di PHP - Contoh

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 $.

Referensi

  • Kata Kunci Statis - PHP.net