Class หรือ Object เป็นโครงสร้างของโปรแกรมที่รวบรวมข้อมูล และฟังก์ชันไว้ด้วยกันอย่างเป็นหมวดหมู่ โดยในแต่ละ Class นั้นจะมี ข้อมูลและ Method สำหรับจัดการโครงสร้างข้อมูลนั้นๆ โดยเฉพาะทั้งนี้แนะนำให้ผู้อ่านศึกษาจากตัวอย่าง (หรืออาจจะศึกษาจากคู่มือภาษา C++ หรือ Java ก็ได้)
การสร้าง Class คือการสร้างโครงร่างของข้อมูลและฟังก์ชันที่เกี่ยวข้องเท่านั้นเมื่อต้องการใช้งาน ผู้ใช้จะต้องสร้างตัวแปรและกำหนดให้เป็นข้อมูลประเภท Class ที่กำหนด โครงสร้างของ Class จะประกอบด้วย ข้อมูล Method ต่างๆ และจะมี Method พิเศษอันหนึ่งซึ่งจะเป็น Construction ที่จะถูกเรียกเมื่อมีการสร้าง Class ทั้งนี้ฟังก์ชันที่เป็น Construction จะต้องมีชื่อเดียวกันกับ Class เสมอ ตัวอย่างการสร้าง Class
| <? class Queue { var $lists; // the list for queue var $max; // the max of queue var $curr; // the max of queue function Queue($maxlist = 100) { // Construction $max=$maxlist; $curr=0; } function enQueue($data) { // enQueue Method if ($curr==$maxlist) return -1 ; // Queue is full else { $lists[$curr++] = $data; } } function deQueue($data) { // deQueueMethod if ($curr==0) return -1 ; // Queue is empty else { $data = $lists[$curr--]; } return $data; } } $queue1 = new Queue(10); $queue2 = new Queue(); $queue1->enQueue("data1"); $queue2->enQueue("data2"); ?> |
นอกจากนี้เรายังสามารถที่จะสร้าง class ใหม่ที่มีพื้นฐานมาจาก Class เดิมที่มีอยู่ได้อีกด้วย ซึ่งเราเรียกการทำงานในลักษณะนี้ว่า การ Derive Class ซึ่งการเรียกใช้จะเขียนในทำนองเดียวกันกับการ Extend Class ของ Java ดังตัวอย่างแสดงการสร้าง Queue แบบใหม่ที่สามารถจะดูจำนวนที่ว่างที่เหลือใน Queue ได้ ทั้งนี้การอ้างอิงถึง Class ที่กำลังทำงานด้วยเราจะใช้ตัวแปรชื่อ $this เสมอ
| <? class Ext_Queue extends Queue{ function Ext_Queue($maxlist = 100) { // Construction $this->Queue($maxlist); } function RemainQueue() { // enQueue Method return max-curr; } } $queue1 = new Ext_Queue(10); echo $queue1->RemainQueue(); ?> |
ทั้งนี้ข้อควรระวังคือ Class ที่ Derived มาใหม่นี้จะไม่มีการเรียก Constructor ของ Class ที่เป็นต้นแบบมาด้วย