ไปสังเกตเห็น abc:: xxx; ไอ้ xxx มันคืออะไรนา ... รูปแบบนี้ไม่เคยเจอ .. แต่ก็ร้องอ่อขึ้นมาจนได้เมื่อค้นพบว่ามันเป็น function หนึ่งที่ถูกสร้างอยู่ภายในคลาสแม่ของมัน .. ก่อนอื่นมาทบทวน OOP
กันก่อน (คนคิดมาดีแล้วมั้ง)
การเข้าถึง (ภาษาอังกิดเรียกไงไม่รู้) ประกอบไปด้วย
- public --
- private
- protect
สามอันนี้มีความสำคัญต่อการเรียกใช้ครับ ชื่อมันก็บอกอยู่ ก็น่าจะเข้าใจกันว่ามันคืออะไร
ผมจะประกาศ class ตัวหนึ่ง
class max {
ฟังก์ชั้่น นี้จะเรียกใช้งานตัวมันเองครับ คือเปิด class นี้ปุ๊บ ไอ้ตัวนี้จะถูกเรียกใช้งานทันที
public function __construct ()
{
// เอาอะไรมายัดใส่ในนีก้ได้ที่ต้องการให้มันโหลดมาเอง
}
การทำ construct นั้นมีสองวิธีครับ อีกแบบหนึ่งคือประกาศไว้นอกฟังก์ชั่่นทั้งหมดทั้งมวลแต่อยู่ภายใน class นั้น ๆครับ แบบนี้ก็ได้
class max{
public $var = '';
อะไรประมาณนี้
}
แล้วไอ่ private มีประโยชน์อะไร แน่นอนครับว่ามีประโยชน์แน่นอนตอนที่คุณไม่ต้องการให้คนอื่นมาใช้ function ของคุณ ก็ ใส่ private function name_function(art[]){} เพื่อป้องกันการเข้าถึงจากข้างนอก
มีอีกแบบคือใส่ _ under scroll ให้มันครับถือว่าเป็น private เหมือนกัน function นี้จะถูกสงวนไว้เพื่อให้ใช้ภายในคลาสเท่านั้น เมิงจะมาเรียกใช้ตรง ๆไม่ได้ ... ยิ่งแบบ frame work php การเข้าถึงหน้า function ก็แค่พิมพ์ผ่าน url ถ้าไม่มีการป้องกันตรงนี้ก็จะถูกเข้าถึงได้น่ะครับ
protect นี้ก็อีกตัวอารมณ์ประมาณว่าครึ่งลูกควบ ถ้าไม่จำเป็นก็ไม่ต้องใช้ .. น่ะครับ
}
เกิ่นมาซะยาว มาถึงประเด็นที่ว่า abc::xxx นี่แหละครับ มันเป็นข้อดีสุดสำหรับ OOP เลยก็ว่าได้
แม่ม ไม่ต้องเขียน include , import , require , ใด ๆทั้งสิ้นมาเองเหมือนผีหลอก ถ้าเราใส่ extended : self
อะไรพวกนี้ ไปไล่เลยครับว่า ใน function ที่เรียกใช้ function อื่นแล้วรู้สึกว่าเห้ยเมิงมาได้ไง ไม่มีใคร (include) ส่งคำเชิญเมิงมา แล้วเสือกเอามาใช้เฉยเลย
อันที่จริงมันมาตั้งแต่ คำว่า extended อะไรที่อยู่ภายใต้อันนี้จะถูกเรียกมาหมด ..ทั้งบาง ข้อดีคือสะดวก ข้อเสียคือคนมาเขียนต่อ งง มาไฟล์มันอยู่ไหน ถ้าไม่คอมเมนท์ไว้ว่า function นี้ถูกเรียกใช้จาก file อะไรเอ๋ย นั่นแหละครับคือประเด็น ที่มีคำว่า เมิงเขียนเหี้ยอะไรว่ะ
ร่ายมาสะยาว สรุปได้แค่เนี้ย
ตอบลบerr
ตอบลบ