ความแตกต่างระหว่าง Public, Private และ Protected ใน PHP คืออะไร

Khwam Taek Tang Rahwang Public Private Laea Protected Ni Php Khux Xari



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

Access Modifiers ใน PHP คืออะไร?

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







ประเภทของตัวแก้ไขการเข้าถึง

ตัวดัดแปลงการเข้าถึงสามตัวที่มีอยู่ใน PHP อธิบายไว้ด้านล่าง:



  • สาธารณะ: คุณสามารถเข้าถึงวิธีการสาธารณะจากภายนอกชั้นเรียน นี่หมายความว่าโค้ดใด ๆ สามารถเข้าถึง เปลี่ยนแปลง และเรียกใช้เมธอดสาธารณะได้
  • ส่วนตัว: ในการเข้าถึงเมธอดส่วนตัวนั้น จำกัด เฉพาะคลาสเท่านั้น นี่หมายความว่าไม่มีรหัสอื่นใด แม้ว่าจะเป็นคลาสย่อยก็ตาม ได้รับอนุญาตให้เข้าถึงเมธอดส่วนตัวหรืออ่านค่าไพรเวต
  • มีการป้องกัน: เมธอดที่ได้รับการป้องกันสามารถเข้าถึงได้ภายในคลาสและคลาสที่เกี่ยวข้องเท่านั้น ไม่สามารถใช้นอกคลาสเหล่านั้นได้ ซอร์สโค้ดใดๆ ที่จำเป็นต้องเข้าถึงอินสแตนซ์ของคลาสสามารถอ่านหรือแก้ไขข้อมูลของคุณสมบัติที่ได้รับการป้องกันหรือเรียกใช้ฟังก์ชันที่ได้รับการป้องกัน

ความแตกต่างระหว่างตัวแก้ไขการเข้าถึงแบบสาธารณะ ส่วนตัว และแบบป้องกันใน PHP

คุณสมบัติ สาธารณะ ส่วนตัว มีการป้องกัน
การเข้าถึง ตัวแก้ไขการเข้าถึงเหล่านี้สามารถเข้าถึงได้จากทุกที่ เช่น ภายในและภายนอกโค้ด ตัวระบุการเข้าถึงส่วนตัวสามารถเข้าถึงได้ภายในคลาสเท่านั้น สามารถเข้าถึงได้ภายในคลาสและคลาสที่เกี่ยวข้อง (ลูก) และวิธีการ
ความยืดหยุ่น แหล่งข้อมูลสาธารณะมีความยืดหยุ่นมากที่สุดเนื่องจากสามารถเข้าถึงได้จากทุกที่ เนื่องจากสามารถเข้าถึงได้เฉพาะในชั้นเรียน วิธีการเหล่านี้มีความยืดหยุ่นน้อยที่สุด เมธอดที่ได้รับการป้องกันจะมีความยืดหยุ่นปานกลาง เนื่องจากคลาสย่อยสามารถเข้าถึงเมธอดเหล่านี้ได้
การห่อหุ้ม รหัสอื่นอาจเข้าถึงหรือสรุปวิธีการสาธารณะ แต่โปรแกรมเมอร์สามารถควบคุมสิ่งนี้ได้ เมธอดส่วนตัวถูกห่อหุ้มไว้ภายในคลาส ทำให้โค้ดจากภายนอกไม่สามารถเข้าถึงหรืออัปเดตได้ กระบวนการห่อหุ้มนั้นเหมือนกับวิธีสาธารณะใน PHP
ความปลอดภัย วิธีการสาธารณะสามารถเข้าถึงได้จากทุกที่ ดังนั้นจึงให้ความปลอดภัยในระดับต่ำในโค้ด ระดับความปลอดภัยสูงสุดมีให้โดยตัวปรับแต่งการเข้าถึงแบบส่วนตัว เนื่องจากมีอยู่ในคลาสทั้งหมด เนื่องจากสามารถเข้าถึงได้โดยสมาชิกของคลาสและคลาสย่อยเท่านั้น ตัวแก้ไขการเข้าถึงที่ได้รับการป้องกันจึงมีระดับความปลอดภัยที่เหมาะสม

มาดูความแตกต่างระหว่างตัวระบุการเข้าถึงเหล่านี้โดยใช้ตัวอย่างโปรแกรมอย่างง่ายใน PHP



ตัวอย่าง: โปรแกรม PHP พร้อมตัวแก้ไขการเข้าถึงแบบส่วนตัว สาธารณะ และแบบป้องกัน





ตัวอย่างต่อไปนี้แสดงให้เห็นถึงความแตกต่างระหว่างรหัสสาธารณะ ส่วนตัว และป้องกันในรหัสตัวอย่างเดียว:

< ?php
คลาส MyClass {
สาธารณะ $สาธารณะ = 'ตัวแปรสาธารณะ \n ' ; // สามารถเข้าถึงได้จากทุกที่
ส่วนตัว $ส่วนตัว = 'ตัวแปรส่วนตัว \n ' ; // สามารถเข้าถึงได้จากในชั้นเรียนเท่านั้น
มีการป้องกัน $ป้องกัน = 'ป้องกันตัวแปร' ; // สามารถเข้าถึงได้ภายในคลาสและคลาสย่อยใดๆ

สาธารณะ การทำงาน รับส่วนตัว ( ) {
กลับ $นี้ - > ส่วนตัว;
}

สาธารณะ การทำงาน ได้รับการป้องกัน ( ) {
กลับ $นี้ - > มีการป้องกัน;
}
}
$obj = MyClass ใหม่ ( ) ;

เสียงสะท้อน $obj - > สาธารณะ;
เสียงสะท้อน $obj - > รับส่วนตัว ( ) ;
เสียงสะท้อน $obj - > ได้รับการป้องกัน ( ) ;
? >



ในโปรแกรมข้างต้น เรากำหนดคลาสเป็น ห้องเรียนของฉัน โดยมีสาธารณสมบัติเป็น $สาธารณะ ซึ่งสามารถเข้าถึงได้ทุกที่ในรหัส, ทรัพย์สินส่วนตัวเช่น $ส่วนตัว และทรัพย์สินคุ้มครองที่เรียกว่า $ป้องกัน ดังนั้นเราจึงไม่สามารถเข้าถึงตัวระบุส่วนตัวและได้รับการป้องกันโดยตรงจากภายนอกคลาส ในขณะที่เราใช้สองวิธีสาธารณะที่เรียกว่า รับส่วนตัว () และ ได้รับการป้องกัน () ที่ส่งคืนค่าของตัวแปรคุณสมบัติไพรเวตและป้องกันตามลำดับ และเอาต์พุตจะได้รับด้านล่าง:

บทสรุป

PHP มีฟังก์ชันการทำงานมากมายและหนึ่งในนั้นคือคีย์เวิร์ดที่เรียกว่าตัวดัดแปลงการเข้าถึง ตัวดัดแปลงการเข้าถึงเหล่านี้มีรูปแบบการเข้าถึงข้อมูลของคลาสในโปรแกรม PHP ที่แตกต่างกัน ในบทช่วยสอนด้านบน เราได้เห็นความแตกต่างระหว่างตัวดัดแปลงการเข้าถึงในแง่ของการเข้าถึง การห่อหุ้ม ความยืดหยุ่น และความปลอดภัยที่มีให้ใน PHP