->
digunakan ketika merujuk ke anggota suatu objek.
::
adalah Operator Resolusi Lingkup
dan digunakan untuk merujuk ke anggota statis Kelas.
Perhatikan kelas berikut:
class FooBar {
public static function fizz() {
echo "Fizz";
}
public function buzz() {
echo "Buzz";
}
}
Anda akan memanggil fungsi buzz()
menggunakan ->
:
$myFooBar = new FooBar();
$myFooBar->buzz();
Tetapi akan menggunakan ::
untuk memanggil fungsi fizz()
, karena merupakan anggota statis (anggota yang tidak memerlukan instance kelas untuk dipanggil):
FooBar::fizz();
Juga, saat kita berbicara tentang perbedaan antara statis anggota versus dibuat anggota, Anda tidak dapat menggunakan $this
untuk merujuk ke instance saat ini dalam statis anggota. Anda menggunakan self
sebagai gantinya (tidak ada $
. di depan ) yang merujuk ke kelas saat ini, atau parent
jika Anda ingin merujuk ke kelas induk, atau jika Anda senang bekerja dengan PHP 5.3.0, static
(yang memungkinkan pengikatan statis yang terlambat).
Dokumentasi menggunakan ::
untuk merujuk ke fungsi di dalam kelas karena nama kelas di header bukan turunan dari kelas. Masih menggunakan contoh yang sama, entri dokumentasi yang mengacu pada fungsi buzz()
akan menggunakan tajuk berikut:
FooBar::buzz
Tetapi kecuali dokumentasi menentukan itu adalah anggota statis, Anda harus menggunakan ->
pada contoh untuk menyebutnya:
$myFooBar = new FooBar();
$myFooBar->buzz();