Class คือ โครงร่างที่ใช้ในการกำหนดองค์ประกอบและวิธีทำงานของ object
ลักษณะทั่วไปของ class
class ชื่อคลาส {
.
.
}
โดยทั่วไปนิยมตั้งชื่อคลาสให้ขึ้นต้นด้วยตัวพิมพ์ใหญ่ (แต่ไม่จำเป็น) ส่วนข้อกำหนดอื่่นๆจะคล้ายกับการตั้งชื่อตัวแปร เช่น
class MyClass {
.
.
}
การนำ class มาใช้ใน สคริปท์ PHP
จะใช้รูปแบบเดียวกับการ include file โดยมีแนวทางดังนี้
1. สร้างคลาสใน web page เปล่าให้มีแต่สคริปท์ PHP เช่น
<?php
class PHPMySQL
.
.
?>
2. บันทึกให้มีส่วนขยายเป็น .php เช่น MyClass.php หรือ PHPMySQL.class.php
3. เรียกใช้งาน class โดยใช้ฟังก์ชัน include() หรือ require() เช่น
<body>
<?php
include(“PHPMySQL.class.php”);
.
.
?>
</body>
Object และ Instance
clss จะนำไปใช้งานได้ต้องถูกสร้างเป็น object เสียก่อน ดังนั้น class กับ object ก็คือสิ่งเดียวกัน แต่อยู่คนละสถานภาพ ด้วยเหตุนี้จึงเรียก object ว่า instance ของ class
$อินสแตนซ์ = new ชื่อคาส();
เช่น
$mycls = new MyClass();
ขั้นตอนในการสร้าง object ของ class นี้เรียกว่า Instantiate ซึ่ง object ที่ถูกสร้างจะมีความสามารถตามที่ระบุไว้ใน class ทุกประการ
class แต่ละ class สามารถนำไปสร้างเป็น object ได้มากกว่า 1 object เช่น
$myclass1 = new MyClass();
$myclass2 = new MyClass();
$myclass3 = new MyClass();
Method
เมธอด เป็นองค์ประกอบของ class สำหรับการกระทำอย่างใดอย่างหนึ่ง โดยปกติ class จะต้องประกอบด้วย method อย่างน้อย 1 method เสมอ
การสร้าง Method
ความจริงแล้ว method ก็คือ function ของ class นั่นเอง วิธีการสร้างก็จะเหมือนการสร้าง function ธรรมดา และภายใน class หนึ่งจะมีกี่ method ก็ได้ เช่น
class Circle {
function area($radius){
return pi()*$radius*$radius;
}
function perimeter($radius){
return 2*pi()*$radius;
}
}
การเรียกใช้ Method
จะใช้ operator -> ในการระบุ method ที่ต้องการเรียกใช้งาน โดยหากเป็นการเรียกเรียกใช้ภายใน class เดียวกัน ก็จะใช้รูปแบบดังนี้
$this->method(argument)
เช่น ต้องการเรียกใช้ method area() ภายใน class Circle ก็ทำดังนี้
$a = $this->area(10);
หากเป็นการเรียกจากนอก class ก็ต้องเรียกผ่าน instance ในรูปแบบ
$instance->method(argument)
เช่น ต้องการใช้ method area() ของ class Circle
$cir = new Circle();
echo $cir->area(10);
การกำหนดค่า Default Parameter ให้กับ Method
Class Payment{
function total($quantity, $price, $vat=7){
return $quantity*$price*(1+$vat/100);
}
}
ค่า default ถูกกำหนดให้กับ $vat หากเรียกใช้ค่าอื่นก็กำหนดลงไปโดยตรง เช่น
$p = new Payment();
$t1 = $p->total(10,20); //VAT 7%
$t2 =$p->total(30,40,10); //VAT 10%
Modifier แบบ Public และ Private
modifier เป็นการควบคุมการเข้าใช้งานสมาชิกของ class เช่น method และ property
public ใช้เมื่อไม่ต้องการปกป้องสิทธิการเข้าใช้สมาชิกนั้น
private ใช้เมื่อไม่ให้เข้าถึงสมาชิกนั้นจากนอก class จึงมักใช้ private กับสมาชิกที่มีความสำคัญและต้องการสงวนไว้ใช้เฉพาะภายใน class เท่านั้น
ตัวอย่าง
การนำไปใช้กับ method
[sourcecode language="php"]
class Cylinder{
private function circleArea($radius){
return pi()*$radius*$radius;
}
public function volume($radius,$height){
$base_area = $this->circleArea($radius);
$volume = $base_area*$height;
return $volume;
}
}
?>
เมื่อเรียกใช้งาน
include(“Cylinder.class.php”);
$cyl = new Cylinder();
echo $cyl->circleArea(10); //error เพราะ circleArea() เป็น private method
echo $cyl->volume(10, 20); //OK
?>
[/sourcecode]





