Mengapa pertanyaan ini ditutup sebagai duplikat dari pertanyaan yang menghubungkan ke pertanyaan ini untuk menjawabnya?
Ben
1
Dalam C ++ operator "->" disebut "anggota pointer" tetapi operator PHP "->" sebenarnya lebih dekat dengan "." operator di C ++ dan itu disebut "anggota objek".
user34660
Jawaban:
134
Nama resmi adalah "operator objek" - T_OBJECT_OPERATOR . Saya menyebutnya "panah".
Perhatikan bahwa token leksikal tidak selalu seperti apa token itu biasa disebut. Misalnya, nama :: adalah "operator resolusi lingkup" tetapi tercantum dalam artikel itu sebagai T_DOUBLE_COLON. Saya akan memberi +1 kepada Anda ketika saya mendapatkan lebih banyak suara :)
Billy ONeal
1
Nah, kedengarannya aneh jika Anda membaca "Dan setelah B mengeksekusi dan mengembalikan gaji, A panah C". Ini akan lebih seperti A mengacu pada C.
Ben
66
Billy benar, sebagian besar orang menyebut :: a T_PAAMAYIM_NEKUDOTAYIM dalam percakapan santai
Alan Storm
3
Saya akan mengatakan itu seperti $a->do()"Metode A Lakukan" dan $a->thing"Hal Properti A", jadi itu relatif.
Martin Lyne
1
Btw, T_PAAMAYIM_NEKUDOTAYIMtepatnya berarti "usus besar ganda" dalam bahasa Ibrani.
Neta
59
Saya menyebutnya " anak panah "; seperti di $Foo->bar(): "Foo dart bar"
Karena banyak bahasa menggunakan "titik" seperti pada Foo.bar();saya ingin menggunakan kata satu suku kata. "Panah" terlalu bertele-tele! ;)
Karena PHP menggunakan ."dot" untuk concatenation (mengapa?) Saya tidak bisa mengatakan "dot" dengan aman - ini bisa membingungkan.
Membahas dengan rekan kerja beberapa waktu lalu, kami memutuskan "panah" sebagai kata yang cukup mirip dengan "titik" untuk mengalir dengan nyaman, tetapi cukup berbeda (setidaknya ketika kita mengatakannya) untuk tidak keliru dengan "titik" gabungan. .
Aku suka itu! +1 untuk Anda. Saya kira ada beberapa bahaya menusuk "panah" menjadi "titik" ketika berbicara dengan keras. Sayang sekali "panah" mungkin jauh lebih mengakar.
Phil Perry
Bagus, ini jawaban yang kemungkinan besar akan saya gunakan di kepala saya. Pembenaran yang bagus atas jawaban Anda.
Liam
Saya akan mengingat ini pasti.
Chev
Saya mengerti jika Anda mengatakan panah ... Saya benar-benar tersesat jika Anda menyebutkan panah
Emeka Mbah
39
Saat membaca kode PHP dengan keras, saya tidak mengucapkan operator "->". Karena $db->prepare($query);saya kebanyakan mengatakan "Db [jeda pendek] siapkan permintaan." Jadi saya kira saya berbicara seperti koma dalam kalimat reguler.
Hal yang sama berlaku untuk Paamayim Nekudotayim ("::").
Paling sering, saya menggunakan beberapa variasi pada metode @Tor Valamo ("metode B dari A" atau "metode B's"), tetapi kadang-kadang saya mengatakan "titik". Misalnya "panggil A dot B ()".
Saya selalu mengatakan "a dot b" karena begitulah dalam hampir setiap bahasa lainnya. PHP dan pengembang non-PHP sepertinya selalu mengerti saya.
Gareth
1
Ya, saya jatuh kembali ke "titik" karena mencapai hal yang sama dengan operator titik di sebagian besar bahasa lain. Pertanyaannya kemudian, apa yang Anda panggil ->dalam C / C ++ di mana ia memiliki fungsi yang berbeda dari operator titik yang sebenarnya?
meagar
4
Operator properti.
Saat membaca $a->b()atau $a->bbersuara keras saya hanya mengatakan "panggil b pada $ a obj" atau "dapatkan b dari / in / dari $ a"
@Marcus Adams - Tidak juga, mengingat metode hanyalah properti yang kebetulan berfungsi di sebagian besar bahasa. Di PHP saja, ada perbedaan besar, tapi saya masih menyebutnya properti.
Tor Valamo
4
Saya pribadi suka menjadi verbose dalam mengekspresikan kode saya secara verbal.
misalnya:
$foo =newFoo();
echo $foo->bar
akan membaca seperti itu:
echo (/ print) properti bar dari objek foo.
Ini verbal dan lebih memakan waktu, tetapi saya menemukan jika ada alasan bagi saya untuk mengekspresikan kode saya secara verbal, maka saya mungkin perlu jelas tentang apa yang saya komunikasikan dengan tepat.
Panah tunggal dapat dengan mudah disebut secara verbal sebagai artinya untuk PHP OOP: Anggota. Sehingga untuk$a->var Anda akan mengatakan "Object a's member var".
Saat membaca kode dengan keras, itu membantu untuk membaca ke depan (lihat referensi di muka, maaf), dan tahu apa yang sebenarnya Anda maksud. Sebagai contoh, mari kita ambil sedikit kode berikut:
Jadi, jika saya membaca dengan keras blok kode ini sebagai demonstrasi kode, saya akan mengatakan ini:
"Tentukan Kelas 'MyClass', buka-brace. Variabel 'foo' sama dengan nol, putus garis. Tetapkan fungsi publik 'bar' tanda kurung buka-tutup, buka-kurung. Kembalikan variabel anggota 'foo' objek 'ini', terminasi baris Close-brace, close-brace. Instantiate instance baru dari 'MyClass' (tanpa argumen) sebagai objek variabel 'myobject', mengakhiri baris. Panggil metode anggota 'bar' objek 'myobject', terminate line. "
Namun, jika saya membaca kode dengan keras untuk siswa lain atau programer untuk menyalin tanpa visual, maka saya akan mengatakan:
"Tag terbuka PHP (penuh), baris baru, lekukan, Kelas-terbuka brace MyClass, baris baru. Lekukan, ['tanda dolar' | 'Objek-penanda'] foo sama dengan 0, titik koma, baris baru, baris baru. Bilah fungsi publik open- tutup kurung, kurung buka, baris baru. Indent, kembalikan ['tanda dolar' | 'Objek-penanda'] panah ini foo, titik koma, baris baru. Balik-inden, kurung kurawal, baris baru, mundur-inden, kurung dekat , baris baru, baris baru. ['tanda-dolar' | 'Objek-penanda'] myobject sama dengan tanda kurung buka-tutup MyClass, titik koma, baris baru. ['tanda-dolar' | 'Objek-penanda'] baris panah myobject panah buka-tutup tanda kurung, titik koma, baris baru. Indentasi balik, tag penutup PHP. "
Di mana Anda melihat ['tanda dolar' | | 'Object-marker'], cukup pilih yang mana Anda cenderung berbicara untuk '$', saya sering beralih di antara keduanya, hanya tergantung pada audiens saya.
Jadi, untuk meringkasnya, dalam PHP, -> mengacu pada anggota suatu objek, baik itu variabel, objek lain, atau metode.
//Instantiated object variable with the name mono call property name
$mono->name;//Instantiated object variable with the name mono call method ship
$mono->ship();
Dalam buku saya ( PHP Master oleh Lorna Mitchell) itu disebut operator objek .
Jepang memiliki partikel yang nyaman untuk ini, "tidak" (の). Ini adalah partikel posesif, yang secara kasar berarti "berkaitan dengan istilah sebelumnya".
"Fred の badger" berarti "badger Fred".
Yang jauh dari mengatakan bahwa setidaknya secara mental, dan juga di antara mereka yang mengerti bahasa Jepang, saya cenderung membedakan mereka dengan membacanya sebagai:
$A->B();// "Call $A's B."
C::D();// "Call C の D."
Tetapi membaca keduanya sebagai posesif "bekerja" juga, untuk penutur non-Jepang. Anda juga dapat membalik mereka dan menggunakan "dari", jadi "D of C" ... tapi itu agak canggung, dan sulit untuk melakukannya Anda membaca dengan cepat karena itu merusak aliran linear Anda.
Namun, jika saya mendikte, mungkin ketika memasangkan kode dan menyarankan apa yang harus diketik, saya akan merujuk ke karakter tertentu sebagai "tanda panah lebih besar dari panah" dan "tanda titik dua" (jika saya tahu orang yang saya bicarakan to adalah PHPophile, saya bisa menyebutnya "paamayim nekudotayim double-colon" pertama kali, sebagian karena ini adalah lelucon keren, sebagian untuk mencegah mereka dari "mengoreksi" saya).
user187291 telah menjawab pertanyaan non-subyektif, seperti untuk pertanyaan subyektif, saya mengatakan "sub". Sebagai contoh, saya akan mengucapkan $x->y"x sub y" - "sub" dalam konteks ini adalah kependekan dari "subscript". Ini lebih tepat untuk notasi array; $x['y']Saya juga mengucapkan "x sub y". Biasanya ketika membaca kode dengan keras, saya menggunakan kata-kata saya untuk mengidentifikasi garis yang bisa dilihat pengembang lain, sehingga ambiguitasnya belum menjadi masalah. Saya percaya penyebabnya adalah bahwa saya melihat struct / objek dan array sebagai "koleksi", dan elemen-elemennya dituliskan dalam notasi matematika.
Jawaban:
Nama resmi adalah "operator objek" - T_OBJECT_OPERATOR . Saya menyebutnya "panah".
sumber
T_DOUBLE_COLON
. Saya akan memberi +1 kepada Anda ketika saya mendapatkan lebih banyak suara :)$a->do()
"Metode A Lakukan" dan$a->thing
"Hal Properti A", jadi itu relatif.T_PAAMAYIM_NEKUDOTAYIM
tepatnya berarti "usus besar ganda" dalam bahasa Ibrani.Saya menyebutnya " anak panah "; seperti di
$Foo->bar()
: "Foo dart bar"Karena banyak bahasa menggunakan "titik" seperti pada
Foo.bar();
saya ingin menggunakan kata satu suku kata. "Panah" terlalu bertele-tele! ;)Karena PHP menggunakan
.
"dot" untuk concatenation (mengapa?) Saya tidak bisa mengatakan "dot" dengan aman - ini bisa membingungkan.Membahas dengan rekan kerja beberapa waktu lalu, kami memutuskan "panah" sebagai kata yang cukup mirip dengan "titik" untuk mengalir dengan nyaman, tetapi cukup berbeda (setidaknya ketika kita mengatakannya) untuk tidak keliru dengan "titik" gabungan. .
sumber
Saat membaca kode PHP dengan keras, saya tidak mengucapkan operator "->". Karena
$db->prepare($query);
saya kebanyakan mengatakan "Db [jeda pendek] siapkan permintaan." Jadi saya kira saya berbicara seperti koma dalam kalimat reguler.Hal yang sama berlaku untuk Paamayim Nekudotayim ("::").
sumber
Ketika membaca kode untuk saya sendiri, saya menganggapnya seperti "hal yang posesif".
Sebagai contoh:
akan membaca "nilai x sama dengan nilai y"
sumber
Paling sering, saya menggunakan beberapa variasi pada metode @Tor Valamo ("metode B dari A" atau "metode B's"), tetapi kadang-kadang saya mengatakan "titik". Misalnya "panggil A dot B ()".
sumber
->
dalam C / C ++ di mana ia memiliki fungsi yang berbeda dari operator titik yang sebenarnya?Operator properti.
Saat membaca
$a->b()
atau$a->b
bersuara keras saya hanya mengatakan "panggil b pada $ a obj" atau "dapatkan b dari / in / dari $ a"sumber
Saya pribadi suka menjadi verbose dalam mengekspresikan kode saya secara verbal.
misalnya:
akan membaca seperti itu:
Ini verbal dan lebih memakan waktu, tetapi saya menemukan jika ada alasan bagi saya untuk mengekspresikan kode saya secara verbal, maka saya mungkin perlu jelas tentang apa yang saya komunikasikan dengan tepat.
sumber
Harkening kembali ke Cobol 'di' di mana Anda akan berkata "Pindahkan 5 ke b di." Sebagian besar bahasa sekarang memenuhi syarat ke arah lain.
Namun saya masih akan membaca
$a->b();
"Call b in a".sumber
Saya menyebutnya sebagai "param b dari $ a".
Saya menyebutnya sebagai "fungsi b dari $ a".
sumber
Panah tunggal dapat dengan mudah disebut secara verbal sebagai artinya untuk PHP OOP: Anggota. Sehingga untuk
$a->var
Anda akan mengatakan "Object a's member var".Saat membaca kode dengan keras, itu membantu untuk membaca ke depan (lihat referensi di muka, maaf), dan tahu apa yang sebenarnya Anda maksud. Sebagai contoh, mari kita ambil sedikit kode berikut:
Jadi, jika saya membaca dengan keras blok kode ini sebagai demonstrasi kode, saya akan mengatakan ini:
Namun, jika saya membaca kode dengan keras untuk siswa lain atau programer untuk menyalin tanpa visual, maka saya akan mengatakan:
Di mana Anda melihat ['tanda dolar' | | 'Object-marker'], cukup pilih yang mana Anda cenderung berbicara untuk '$', saya sering beralih di antara keduanya, hanya tergantung pada audiens saya.
Jadi, untuk meringkasnya, dalam PHP, -> mengacu pada anggota suatu objek, baik itu variabel, objek lain, atau metode.
sumber
Pengembang PHP senior tempat saya bekerja mengatakan "panah".
Ketika dia mengatakan kepada saya untuk mengetik di atas, dia akan berkata, "Dolar A panah B" atau untuk
"Dolar A panah B parens."
sumber
Saya akan melakukannya seperti ini:
Dalam buku saya ( PHP Master oleh Lorna Mitchell) itu disebut operator objek .
sumber
Jepang memiliki partikel yang nyaman untuk ini, "tidak" (の). Ini adalah partikel posesif, yang secara kasar berarti "berkaitan dengan istilah sebelumnya".
"Fred の badger" berarti "badger Fred".
Yang jauh dari mengatakan bahwa setidaknya secara mental, dan juga di antara mereka yang mengerti bahasa Jepang, saya cenderung membedakan mereka dengan membacanya sebagai:
Tetapi membaca keduanya sebagai posesif "bekerja" juga, untuk penutur non-Jepang. Anda juga dapat membalik mereka dan menggunakan "dari", jadi "D of C" ... tapi itu agak canggung, dan sulit untuk melakukannya Anda membaca dengan cepat karena itu merusak aliran linear Anda.
Namun, jika saya mendikte, mungkin ketika memasangkan kode dan menyarankan apa yang harus diketik, saya akan merujuk ke karakter tertentu sebagai "tanda panah lebih besar dari panah" dan "tanda titik dua" (jika saya tahu orang yang saya bicarakan to adalah PHPophile, saya bisa menyebutnya "paamayim nekudotayim double-colon" pertama kali, sebagian karena ini adalah lelucon keren, sebagian untuk mencegah mereka dari "mengoreksi" saya).
sumber
Obyek. Jadi
$a->$b->$c
akan menjadi 'A objek B objek c'.sumber
->
adalah operator properti yang digunakan untuk PHP dalam mode berorientasi objek.sumber
user187291 telah menjawab pertanyaan non-subyektif, seperti untuk pertanyaan subyektif, saya mengatakan "sub". Sebagai contoh, saya akan mengucapkan
$x->y
"x sub y" - "sub" dalam konteks ini adalah kependekan dari "subscript". Ini lebih tepat untuk notasi array;$x['y']
Saya juga mengucapkan "x sub y". Biasanya ketika membaca kode dengan keras, saya menggunakan kata-kata saya untuk mengidentifikasi garis yang bisa dilihat pengembang lain, sehingga ambiguitasnya belum menjadi masalah. Saya percaya penyebabnya adalah bahwa saya melihat struct / objek dan array sebagai "koleksi", dan elemen-elemennya dituliskan dalam notasi matematika.sumber