สำนักวิทยบริการและเทคโนโลยีสารสนเทศ (สวส.)

Office of Academic Resources and Information Technology

PHP OOP ฟังก์ชันน่ารู้เกี่ยวกับการเขียนคลาส (Class)

1. class_exists - ตรวจสอบกาีรมีอยู่ของ class หรือตรวจสอบว่ามีการประกาศ Instance ของคลาสหรือยัง

เราจะใช้การตรวจสอบนี้ก็เพื่อเช็คก่อนการประกาศ instance ใหม่อีกครั้ง เพื่อเป็นการประหยัด memory ของ server ได้อีกด้วย 
 

 
  1. $cl = new MyClass;
  2. $cl->Show1();
  3.  
  4. // โค้ดอื่น ๆ ของคุณ
  5.  
  6. if(!class_exists('MyClass')) {
  7.  $cl = new MyClass;    
  8. }
  9.  
  10. $cl->Show2();
  11. ?>



2. Clone - ก๊อปปี้ Object ในบางกรณีเราอาจจำเป็นต้องก๊อปปี้ไว้ใช้งาน เราสามารถเขียนได้ดังนี้
 

 
  1. $cl = new MyClass;
  2.  
  3. // ก๊อปปี้ออปเจ็ค
  4. $cObj = clone $cl;
  5. $cObj->Show2();
  6. ?>



3. get_declared_classes() - ตรวจสอบคลาสที่พร้อมใช้งาน

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

 
  1. <?php
  2.  print_r(get_declared_classes());
  3. ?>


4. __autoload - โหลดคลาสอัตโนมัติ เมื่อประกาศ instance โดยไม่ต้องเขียน include หรือ require

    อันนี้มีประโยชน์สุด ๆ ครับ สำหรับใครที่ทำระบบใหญ่มีคลาสเป็นจำนวนมาก บางทีการเขียน include ด้านบนของไฟล์หลายบรรทัดมาก การใช้ __autoload ฟังกัชันนับว่าสะดวกและง่ายต่อคนเขียนโปรแกรมอย่างมาก ถึงแม้ว่าบางสำนักจะบอกว่าการใช้ __autoload จะเป็นปัญหาต่อประสิทธิภาพความเร็วของระบบอยู่บ้างก็ตาม แต่ผมก็แนะนำให้ใช้ครับ
ส่วนวิธีการทำตามอ่านได้ที่ __autoload(Autoloading Classes)

 
 จาก  : http://www.worldphp.com/