Apakah ada yang punya T_PAAMAYIM_NEKUDOTAYIM
?
u
. Seharusnya begitu T_PAAMAYIM_NEKUDOTAYIM
. ( PAAMAYIM
= "dua kali", NEKUDOTAYIM
= :
= "נקודותיים")
Apakah ada yang punya T_PAAMAYIM_NEKUDOTAYIM
?
u
. Seharusnya begitu T_PAAMAYIM_NEKUDOTAYIM
. ( PAAMAYIM
= "dua kali", NEKUDOTAYIM
= :
= "נקודותיים")
Jawaban:
Ini operator usus besar ganda ::
(lihat daftar token parser ).
var_dump(empty(TRUE))
foreach($cats as cat
-satunya karakter yang dapat diterima setelah cat
pernyataan sintaksis yang valid adalah a ::
, karena itu akan memungkinkan Anda untuk menentukan properti statis dari beberapa kelas yang disebut cat
. Misalnya, jika cat
kelas memiliki anggota statis publik yang dipanggil $mouse
, maka foreach($cats as cat::$mouse)
itu benar-benar valid php
, tetapi pernyataan dengan apa pun selain ::
setelah itu cat
akan menjadi kesalahan sintaksis. Jika $mouse
bukan properti yang dideklarasikan dari cat
Anda, Anda akan mendapatkan kesalahan fatal, tetapi masih bukan kesalahan sintaksis.
Google melakukan keajaiban.
Ini bahasa Ibrani untuk "usus ganda".
Itu nama untuk ::
operator di PHP. Secara harfiah berarti "usus ganda". Untuk beberapa alasan mereka menamainya dalam bahasa Ibrani. Periksa sintaksis kode Anda, dan letakkan yang ::
sesuai :-)
Dari Wikipedia :
Dalam PHP, operator resolusi ruang lingkup juga disebut Paamayim Nekudotayim (Bahasa Ibrani: פעמיים נקודתיים), yang berarti "usus ganda" dalam bahasa Ibrani.
Nama "Paamayim Nekudotayim" diperkenalkan di Zend Engine 0.5 yang dikembangkan Israel yang digunakan dalam PHP 3. Meskipun telah membingungkan bagi banyak pengembang yang tidak berbicara bahasa Ibrani, masih digunakan dalam PHP 5, seperti dalam contoh pesan kesalahan ini :
$ php -r :: Parse error: kesalahan sintaksis, tak terduga T_PAAMAYIM_NEKUDOTAYIM
Pada PHP 5.4, pesan kesalahan mengenai operator resolusi lingkup masih menyertakan nama ini, tetapi telah sedikit menjelaskan artinya:
$ php -r :: Parse error: kesalahan sintaksis, tak terduga '::' (T_PAAMAYIM_NEKUDOTAYIM)
Dari dokumentasi PHP resmi :
Operator Penyelesaian Ruang Lingkup (juga disebut Paamayim Nekudotayim) atau dalam istilah yang lebih sederhana, tanda titik dua, adalah token yang memungkinkan akses ke properti atau metode statis, konstan, dan yang dikesampingkan dari suatu kelas.
Saat mereferensikan item-item ini dari luar definisi kelas, gunakan nama kelas.
Pada PHP 5.3.0, dimungkinkan untuk mereferensikan kelas menggunakan variabel. Nilai variabel tidak boleh berupa kata kunci (mis. Mandiri, orang tua, dan statis).
Paamayim Nekudotayim akan, pada awalnya, tampak seperti pilihan aneh untuk penamaan dua-titik dua. Namun, saat menulis Mesin Zend 0,5 (yang mendukung PHP 3), itulah yang tim Zend memutuskan untuk menyebutnya. Ini sebenarnya berarti double-colon - dalam bahasa Ibrani!
Ini juga datang ketika Anda menerapkan konstanta di PHP ke fungsi kosong ():
if (!empty(SOME_CONSTANT)) {
}
Itu kasus saya. Saya menyelesaikannya dengan menggunakan ini:
$string = SOME_CONSTANT;
if (!empty($string)) {
}
Saya tahu bahasa Ibrani dengan cukup baik, sehingga untuk memperjelas nama "Paamayim Nekudotayim" untuk Anda, makna yang diparafrasekan adalah "usus ganda", tetapi diterjemahkan secara harfiah:
::
menunjukkan "dua kali, dua titik", atau lebih umumnya dikenal sebagai Operator Penyelesaian Ruang Lingkup .Bagi saya ini terjadi dalam fungsi kelas.
Dalam PHP 5.3 dan di atasnya $this::$defaults
berfungsi dengan baik; ketika saya menukar kode ke server yang karena alasan apa pun memiliki nomor versi yang lebih rendah melemparkan kesalahan ini.
Solusinya, dalam kasus saya, adalah menggunakan kata kunci self
alih-alih $this
:
self::$defaults
berfungsi dengan baik.
$this
, atau apa yang terjadi pada Anda ?