Class และ Object php 8

Class หรือ Object เป็นโครงสร้างของโปรแกรมที่รวบรวมข้อมูล และฟังก์ชันไว้ด้วยกันอย่างเป็นหมวดหมู่ โดยในแต่ละ Class นั้นจะมี ข้อมูลและ Method สำหรับจัดการโครงสร้างข้อมูลนั้นๆ โดยเฉพาะทั้งนี้แนะนำให้ผู้อ่านศึกษาจากตัวอย่าง (หรืออาจจะศึกษาจากคู่มือภาษา C++ หรือ Java ก็ได้)
โครงสร้าง Class
การสร้าง 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 เดิม
นอกจากนี้เรายังสามารถที่จะสร้าง 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 ที่เป็นต้นแบบมาด้วย