Score:2

เหตุใดเมธอด setter ในเอนทิตีจึงส่งคืน $this

ธง cn

การเขียนประเภทเอนทิตีที่กำหนดเอง ฉันสังเกตเห็นว่าเมธอด setter ทั้งหมดในคลาสเอนทิตีส่งคืน $this หลังจากการเปลี่ยนแปลง เนื่องจากเมธอดแก้ไขวัตถุ ดังนั้นวัตถุจะถูกแก้ไขอย่างแน่นอน จากนั้น

ข้อเสนอในการส่งคืนวัตถุคืออะไร? มันเป็นแนวทางปฏิบัติที่ดีที่สุดหรือไม่?

Score:8
ธง cn

มีไว้สำหรับผูกมัด เช่น

$an_object
  ->ทำบางสิ่ง()
  ->ทำอย่างอื่น()
  ->และอย่างอื่น();

ไม่ว่าจะเป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับการอภิปราย ไม่มีคำตอบที่ถูกหรือผิดสำหรับสิ่งนั้น บางคนชอบเพราะมันดูดี (เรียกว่า อินเทอร์เฟซที่คล่องแคล่ว) บางคนไม่ชอบเพราะก็ด้วยเหตุผลหลายประการ

ดู https://stackoverflow.com/questions/1103985/method-chaining-why-is-it-a-good-practice-or-not สำหรับความคิดเห็นที่น่าสนใจ

Score:5
ธง cn

ข้อดีคือคุณสามารถเชื่อมโยงเมธอด เช่น การบันทึกเอนทิตีหลังจากที่คุณตั้งค่า:

$entity->set('label', 'foo')->save();

ข้อแม้: บันทึก() ไม่ส่งคืนวัตถุ แต่ผลลัพธ์ของการดำเนินการบันทึกเป็นจำนวนเต็ม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา