diri sendiri berbanding ini dalam PHP

PHP menyokong kelas dan lain-lain yang berorientasikan objek membina. diri sendiriiniBoleh digunakan dalam fungsi statik Ya Tidak pembolehubah dan kaedah kelas yang boleh diakses dengan diri :: $ this-> (Perhatikan bahawa PHP> 5.3 membenarkan penggunaan $ ini dengan pembolehubah statik menggunakan $ this :: $ foo. $ this-> foo akan tetap tidak ditentukan jika $ foo adalah statik var.) Memerlukan objek instantiated Tidak Ya

diri vs ini dalam PHP - Contoh

contoh kelasClass public static $ foo; bar $ awam; fungsi awam regularFunction () echo $ this-> bar;  fungsi statik awam staticFunction () echo self :: $ foo;  fungsi statik awam anotherStatFn () self :: staticFunction ();  fungsi awam regularFnUsingStaticVar () echo self :: $ foo;  // NOTA: Dari PHP 5.3 menggunakan $ this :: bar $ bukannya sendiri :: $ bar dibenarkan exampleClass :: $ foo = "Hello"; $ obj = new exampleClass (); $ obj-> bar = "World!"; exampleClass :: staticFunction (); / * mencetak Hello * / $ obj-> regularFunction (); / * mencetak Dunia! * / 

Fungsi statik hanya boleh menggunakan pembolehubah statik. Fungsi dan pembolehubah statik dirujuk melalui diri ::fungsiName () atau diri ::variableName. Dalam contoh yang ditunjukkan di atas, pembolehubah statik dirujuk dengan nama kelas (contohClass :: $ foo) atau, dengan a diri :: (self :: $ foo) apabila digunakan dalam kaedah statik [bernama staticFunction ()dari kelas.

Fungsi dan pemboleh ubah biasa kelas memerlukan konteks objek yang dirujuk. Mereka tidak boleh wujud tanpa konteks objek. Konteks objek disediakan oleh $ ini. Dalam contoh di atas, bar $ adalah pemboleh ubah biasa dan oleh itu ia dirujuk sebagai $ obj-> bar (dalam konteks objek dengan pemboleh ubah obj) atau sebagai $ this-> bar (lagi dalam konteks objek dalam kaedah objek).

diri sendiri tidak menggunakan sebelumnya $ kerana diri sendiri tidak memaksudkan pembolehubah tetapi kelas membina sendiri. $ ini merujuk pemboleh ubah tertentu supaya ia mempunyai sebelumnya $.

Rujukan

  • Kata Kunci Statik - PHP.net