คุณเรียก->
ตัวดำเนินการค้นหาลูกศรนี้ว่าอะไรที่พบใน PHP?
ซึ่งอาจเป็นเครื่องหมายลบเส้นประหรือยัติภังค์ตามด้วยเครื่องหมายมากกว่า (หรือเครื่องหมายบั้งขวา)
คุณออกเสียงอย่างไรเมื่ออ่านโค้ดดัง ๆ
คุณเรียก->
ตัวดำเนินการค้นหาลูกศรนี้ว่าอะไรที่พบใน PHP?
ซึ่งอาจเป็นเครื่องหมายลบเส้นประหรือยัติภังค์ตามด้วยเครื่องหมายมากกว่า (หรือเครื่องหมายบั้งขวา)
คุณออกเสียงอย่างไรเมื่ออ่านโค้ดดัง ๆ
คำตอบ:
T_DOUBLE_COLON
แต่ระบุไว้ในบทความว่า ฉันจะ +1 ให้คุณเมื่อฉันได้รับคะแนนโหวตมากขึ้น :)
$a->do()
เป็น "วิธีการของ A" และ$a->thing
เป็น "คุณสมบัติของ A" ดังนั้นมันจึงสัมพันธ์กัน
T_PAAMAYIM_NEKUDOTAYIM
แปลว่า "โคลอนสองเท่า" ในภาษาฮิบรู
ฉันเรียกมันว่า " โผ "; เช่นเดียวกับ$Foo->bar()
: "Foo dart bar"
เนื่องจากหลายภาษาใช้ "dot" เช่นเดียวกับที่Foo.bar();
ฉันต้องการให้ใช้คำพยางค์เดียว “ ลูกศร” ยืดเยื้อเกินไป! ;)
เนื่องจาก PHP ใช้.
"dot" ในการเชื่อมต่อ (เพราะเหตุใด) ฉันจึงไม่สามารถพูดว่า "dot" ได้อย่างปลอดภัย - อาจทำให้สับสนได้
เมื่อพูดคุยกับเพื่อนร่วมงานเราตัดสินใจเลือก "โผ" เป็นคำที่คล้ายกับ "dot" มากพอที่จะไหลได้อย่างสบาย ๆ แต่มีความชัดเจนเพียงพอ (อย่างน้อยก็เมื่อเราพูด) เพื่อไม่ให้เข้าใจผิดว่าเป็น "dot" ที่เชื่อมต่อกัน .
เมื่ออ่านออกเสียงโค้ด PHP ฉันจะไม่ออกเสียงโอเปอเรเตอร์ "->" สำหรับ$db->prepare($query);
ฉันส่วนใหญ่จะพูดว่า "Db [short pause]เตรียมคำค้นหา" ดังนั้นฉันเดาว่าฉันพูดเหมือนลูกน้ำในประโยคปกติ
เช่นเดียวกันกับ Paamayim Nekudotayim ("::")
เมื่ออ่านโค้ดกับตัวเองฉันคิดว่ามันเหมือน "สิ่งที่เป็นเจ้าของ"
ตัวอย่างเช่น:
x->value = y->value
จะอ่านว่า "ค่าของ x เท่ากับค่าของ y"
ส่วนใหญ่ฉันใช้วิธีการบางอย่างในวิธีการของ @Tor Valamo ("the B method of A" หรือ "A's B method") แต่บางครั้งก็พูดว่า "dot" เช่น "เรียก A dot B ()"
->
ใน C / C ++ ซึ่งมีฟังก์ชันการทำงานที่แตกต่างจากตัวดำเนินการจุดจริง?
ผู้ดำเนินการทรัพย์สิน.
เวลาอ่าน$a->b()
หรือ$a->b
พูดดัง ๆ ฉันแค่พูดว่า "call b on the $ a obj" หรือ "get b from / in / of $ a"
โดยส่วนตัวแล้วฉันชอบที่จะเปิดเผยรหัสของฉันด้วยวาจา
เช่น:
$foo = new Foo();
echo $foo->bar
จะอ่านเช่นนี้:
echo (/ print) คุณสมบัติบาร์ของ object foo
มันละเอียดและใช้เวลานานกว่า แต่ฉันพบว่ามีเหตุผลที่ฉันต้องแสดงรหัสด้วยวาจาหรือไม่ฉันอาจต้องชัดเจนว่าฉันกำลังสื่อสารอะไรกันแน่
กลับไปที่ Cobol 'in' โดยที่คุณจะพูดว่า "Move 5 to b in a." ภาษาส่วนใหญ่ในปัจจุบันมีคุณสมบัติในทิศทางอื่น ๆ
แต่ฉันจะยังคงอ่าน$a->b();
ว่า "Call b in a"
$a->b
ฉันเรียกว่า "param b ของ $ a"
$a->b()
ฉันเรียกว่า "ฟังก์ชัน b ของ $ a"
ลูกศรเดี่ยวสามารถเรียกด้วยวาจาได้อย่างง่ายดายว่าความหมายสำหรับ PHP OOP: Member ดังนั้นสำหรับ$a->var
คุณจะพูดว่า "Object a's member var"
เมื่ออ่านออกเสียงโค้ดจะช่วยในการอ่านล่วงหน้า (การอ้างอิง Lookahead ขออภัย) และรู้ว่าคุณอาจอ้างถึงอะไร ตัวอย่างเช่นขอบิตโค้ดต่อไปนี้:
<?php
Class MyClass {
$foo = 0;
public function bar() {
return $this->foo;
}
}
$myobject = new MyClass();
$myobject->bar();
?>
ดังนั้นถ้าฉันจะอ่านออกเสียงบล็อกโค้ดนี้เพื่อเป็นการสาธิตโค้ดฉันจะพูดว่า:
"กำหนดคลาส" MyClass ", วงเล็บปีกกาเปิดตัวแปร" foo "เท่ากับศูนย์สิ้นสุดบรรทัดกำหนดวงเล็บเปิด - ปิดฟังก์ชันสาธารณะ" bar "วงเล็บปีกกาเปิดกลับตัวแปรสมาชิก 'foo' ของวัตถุ" this "สิ้นสุดบรรทัด . Close-brace, close-brace สร้างอินสแตนซ์ใหม่ของ "MyClass" (ไม่มีอาร์กิวเมนต์) เป็นตัวแปร "myobject" สิ้นสุดบรรทัดเรียกเมธอดสมาชิกว่า "bar" ของวัตถุ "myobject", สิ้นสุดบรรทัด "
อย่างไรก็ตามหากฉันกำลังอ่านโค้ดดัง ๆ เพื่อให้นักเรียนหรือโปรแกรมเมอร์คนอื่น ๆ คัดลอกโดยไม่มีภาพฉันจะพูดว่า:
"PHP open tag (full), newline, indent, Class MyClass open-brace, newline. indent, ['dollar-sign' | 'Object-marker'] foo เท่ากับ 0, อัฒภาค, บรรทัดใหม่, บรรทัดใหม่. แถบฟังก์ชันสาธารณะ open- วงเล็บปิด, วงเล็บปีกกาเปิด, ขึ้นบรรทัดใหม่เยื้องกลับ ['เครื่องหมายดอลลาร์' | 'วัตถุ - เครื่องหมาย'] ลูกศรนี้ foo, อัฒภาค, ขึ้นบรรทัดใหม่ย้อนกลับ - เยื้อง, รั้งปิด, ขึ้นบรรทัดใหม่, เยื้องกลับ, รั้งปิด , newline, newline. ['dollar-sign' | 'Object-marker'] myobject เท่ากับวงเล็บเปิด - ปิด MyClass ใหม่, อัฒภาค, บรรทัดใหม่ ['เครื่องหมายดอลลาร์' | 'Object-marker'] แถบลูกศร myobject เปิด - ปิด วงเล็บ, อัฒภาค, ขึ้นบรรทัดใหม่เยื้องกลับ, แท็กปิด PHP "
ที่คุณเห็น ['เครื่องหมายดอลลาร์' | 'Object-marker'] เพียงแค่เลือกสิ่งที่คุณมักจะพูดกับ '$' ฉันจะสลับระหว่างสองตัวนี้บ่อยๆขึ้นอยู่กับผู้ชมของฉัน
ดังนั้นเพื่อสรุปใน PHP -> หมายถึงสมาชิกของวัตถุไม่ว่าจะเป็นตัวแปรวัตถุอื่นหรือวิธีการ
นักพัฒนา PHP อาวุโสที่ฉันทำงานพูดว่า "arrow"
$A->B;
เมื่อเขาบอกให้ฉันพิมพ์ข้างต้นเขาจะพูดว่า "Dollar A arrow B" หรือ for
$A->B();
"ดอลลาร์ A ลูกศร B parens"
ฉันจะทำเช่นนี้:
//Instantiated object variable with the name mono call property name
$mono->name;
//Instantiated object variable with the name mono call method ship
$mono->ship();
ในหนังสือของฉัน ( PHP ปริญญาโทโดยลอร์นามิตเชลล์) ก็เรียกว่าผู้ประกอบการวัตถุ
ภาษาญี่ปุ่นมีอนุภาคที่สะดวกสำหรับสิ่งนี้ "ไม่" (の) เป็นอนุภาคที่มีความเป็นเจ้าของซึ่งมีความหมายโดยประมาณว่า "เกี่ยวข้องกับคำก่อนหน้า"
"Fred の badger" หมายถึง "Fred's badger"
ซึ่งเป็นคำพูดที่ยาวเหยียดอย่างน้อยที่สุดในทางจิตใจและในหมู่คนที่เข้าใจภาษาญี่ปุ่นฉันมักจะแยกความแตกต่างโดยการอ่านว่า:
$A->B(); // "Call $A's B."
C::D(); // "Call C の D."
แต่การอ่านทั้งสองอย่างในฐานะเจ้าของก็ใช้ได้เช่นกันสำหรับผู้ที่ไม่ได้ใช้ภาษาญี่ปุ่น คุณยังสามารถพลิกมันและใช้ "ของ" ดังนั้น "D ของ C" ... แต่มันค่อนข้างน่าอึดอัดและยากที่จะอ่านว่าคุณกำลังอ่านอย่างรวดเร็วเพราะมันทำให้การไหลเชิงเส้นของคุณแตก
ถ้าฉันเขียนตามคำบอกบางทีเมื่อจับคู่การเข้ารหัสและแนะนำว่าจะพิมพ์อะไรฉันจะเรียกอักขระเฉพาะว่า "dash-greater-than arrow" และ "double-colon" (ถ้าฉันรู้จักคนที่ฉันพูด ถึงเป็น PHPophile ฉันอาจเรียกสิ่งนั้นว่า "paamayim nekudotayim double-colon" ในครั้งแรกส่วนหนึ่งเป็นเพราะมันเป็นเรื่องตลกที่น่าสนใจส่วนหนึ่งเพื่อป้องกันไม่ให้ "แก้ไข" ฉัน)
วัตถุ. ดังนั้น$a->$b->$c
จะเป็น 'วัตถุ B วัตถุ c'
->
เป็นตัวดำเนินการคุณสมบัติที่ใช้สำหรับ PHP ในโหมดเชิงวัตถุ
user187291ได้ตอบคำถามที่ไม่ใช่อัตนัยส่วนคำถามอัตนัยฉันพูดว่า "ย่อย" ตัวอย่างเช่นฉันจะออกเสียง$x->y
ว่า "x sub y" - "sub" ในบริบทนี้ย่อมาจาก "subscript" สิ่งนี้เหมาะสมกว่าสำหรับสัญกรณ์อาร์เรย์ $x['y']
ฉันยังออกเสียง "x sub y" โดยปกติเมื่ออ่านโค้ดออกมาฉันจะใช้คำพูดเพื่อระบุบรรทัดที่นักพัฒนาคนอื่นสามารถมองเห็นได้ดังนั้นความคลุมเครือจึงยังไม่กลายเป็นปัญหา ฉันเชื่อว่าสาเหตุมาจากการที่ฉันมองโครงสร้าง / วัตถุและอาร์เรย์เป็น "คอลเลกชัน" และองค์ประกอบดังกล่าวจะถูกห้อยลงในรูปสัญกรณ์ทางคณิตศาสตร์