Apa yang Anda sebut ->
operator cari panah ini ditemukan di PHP?
Entah itu tanda minus, tanda hubung atau tanda hubung diikuti oleh tanda lebih besar dari (atau chevron kanan).
Bagaimana Anda mengucapkannya ketika membaca kode dengan keras?
Apa yang Anda sebut ->
operator cari panah ini ditemukan di PHP?
Entah itu tanda minus, tanda hubung atau tanda hubung diikuti oleh tanda lebih besar dari (atau chevron kanan).
Bagaimana Anda mengucapkannya ketika membaca kode dengan keras?
Jawaban:
Nama resmi adalah "operator objek" - T_OBJECT_OPERATOR . Saya menyebutnya "panah".
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. .
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 ("::").
Ketika membaca kode untuk saya sendiri, saya menganggapnya seperti "hal yang posesif".
Sebagai contoh:
x->value = y->value
akan membaca "nilai x sama dengan nilai y"
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 ()".
->
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"
Saya pribadi suka menjadi verbose dalam mengekspresikan kode saya secara verbal.
misalnya:
$foo = new Foo();
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.
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".
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:
<?php
Class MyClass {
$foo = 0;
public function bar() {
return $this->foo;
}
}
$myobject = new MyClass();
$myobject->bar();
?>
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.
Pengembang PHP senior tempat saya bekerja mengatakan "panah".
$A->B;
Ketika dia mengatakan kepada saya untuk mengetik di atas, dia akan berkata, "Dolar A panah B" atau untuk
$A->B();
"Dolar A panah B parens."
Saya akan melakukannya seperti ini:
//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).
->
adalah operator properti yang digunakan untuk PHP dalam mode berorientasi objek.
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.