เมื่อคุณประกาศคลาส คุณจำเป็นต้องแสดงรายการตัวแปรทั้งหมดและฟังก์ชันทั้งหมดที่วัตถุควรมีหรือไม่ สิ่งเหล่านี้เรียกว่าคุณสมบัติและเมธอด รูปที่ 1 แสดงโครงสร้างของคลาสเท่านั้น ({}) หรือฟังก์ชัน รูปที่ 2 แสดงวิธีการกำหนดคุณสมบัติสามประการและสองวิธีในคลาส
Name ขยายคลาสอื่น
-
การประกาศตัวแปรการเข้าถึง
การประกาศฟังก์ชันการเข้าถึง
-
ชื่อ = $ชื่อ;
$นี่->รหัสผ่าน = $รหัสผ่าน;
$นี่->lastLogin = เวลา();
$นี่->เข้าถึง++;
}
// รับเวลาของการเข้าชมครั้งล่าสุด
ฟังก์ชั่น getLastLogin()
-
return(date("M d Y", $this->lastLogin));
-
}
//สร้างอินสแตนซ์ของวัตถุ
$user = ผู้ใช้ใหม่("Leon", "sdf123");
// รับเวลาของการเข้าชมครั้งล่าสุด
print($user->getLastLogin() "n");
//พิมพ์ชื่อผู้ใช้
พิมพ์("$ผู้ใช้->ชื่อn");
?>
เมื่อคุณประกาศคุณสมบัติ คุณไม่จำเป็นต้องระบุประเภทข้อมูล ตัวแปรอาจเป็นจำนวนเต็ม สตริง หรืออ็อบเจ็กต์อื่น ขึ้นอยู่กับสถานการณ์ เป็นความคิดที่ดีที่จะเพิ่มความคิดเห็นเมื่อประกาศคุณสมบัติ ความหมายของคุณสมบัติ และประเภทข้อมูล
เมื่อคุณประกาศวิธีการ คุณกำลังทำเช่นเดียวกับการกำหนดฟังก์ชันนอกคลาส นอกชั้นเรียน วิธีการทั้งสองจะไม่ขัดแย้งกัน ตัวอย่างเช่น ชั้นเรียนสามารถกำหนดวิธีการชื่อ date() แต่คุณไม่สามารถตั้งชื่อวิธีการเป็นคำหลัก PHP เช่นวิธีการ
คลาส
สำหรับหรือในขณะที่date() ในคำใบ้ประเภท PHP คือชื่อของคลาสอื่นที่ถูกส่งเป็นอาร์กิวเมนต์ไปยังเมธอด หากสคริปต์ของคุณเรียกใช้เมธอดและส่งผ่านตัวแปรที่ไม่ใช่อินสแตนซ์ของคลาส PHP จะสร้าง " ข้อผิดพลาดร้ายแรง" คุณอาจไม่ได้มอบให้ประเภทอื่นให้คำแนะนำประเภท เช่น จำนวนเต็ม สตริง หรือบูลีน ในขณะที่เขียน มีข้อโต้แย้งว่าคำแนะนำประเภทควรมีประเภทอาร์เรย์หรือไม่
คำแนะนำประเภทเป็นทางลัดสำหรับการทดสอบประเภทข้อมูลของพารามิเตอร์ฟังก์ชันหรืออินสแตนซ์ของตัวดำเนินการ คุณสามารถส่งคืนวิธีนี้ได้เสมอ ตรวจสอบให้แน่ใจว่าคุณบังคับให้พารามิเตอร์เป็นประเภทข้อมูล เช่น จำนวนเต็ม ตัวอย่างวิดเจ็ตของ
<?php
//ส่วนประกอบ
วิดเจ็ตคลาส
-
สาธารณะ $name='none';
สาธารณะ $created=FALSE;
}
//ผู้ประกอบ
คลาสแอสเซมเบลอร์
-
ฟังก์ชั่นสาธารณะทำให้ (Widget $w)
-
print("สร้าง $w->ชื่อn");
$w->สร้าง=TRUE;
-
}
//สร้างวัตถุส่วนประกอบ
$thing = วิดเจ็ตใหม่;
$thing->name = 'Gadget';
// ส่วนประกอบประกอบ
ผู้ประกอบ::make($thing);
?>
นอกจากตัวแปรที่ส่งผ่านไปยังพารามิเตอร์แล้ว วิธีการยังมีตัวแปรพิเศษอีกด้วย ซึ่งแสดงถึงแต่ละอินสแตนซ์ของคลาส สมมติว่าตัวแปรที่ไม่มีเงื่อนไขถูกส่งไปยังแอตทริบิวต์ท้องถิ่น แต่ใน PHP ตัวแปรใด ๆ ของวิธีการจะอยู่ภายในขอบเขตที่กำหนดของวิธีการเท่านั้น โปรดสังเกตการใช้ตัวแปรนี้ในตัวสร้างคลาสผู้ใช้ในรูปที่ 2
PHP กำหนดคุณสมบัติการเข้าถึงก่อนที่จะประกาศคุณสมบัติและวิธีการ เช่น สาธารณะ ส่วนตัว และการป้องกัน นอกจากนี้ คุณยังสามารถทำเครื่องหมายสมาชิกด้วย "คงที่" คุณยังสามารถประกาศค่าคงที่ในชั้นเรียนได้จะมีการหารือในภายหลัง ในการสนทนาที่เกี่ยวข้องกับบทนี้
คุณสามารถแสดงรายการคุณสมบัติต่างๆ ด้วยวิธีการเข้าถึงเดียวกันได้ในบรรทัดเดียว โดยคั่นด้วยเครื่องหมายจุลภาค ในรูปที่ 2 คลาส User มีคุณสมบัติส่วนตัวสองรายการ ได้แก่ $password และ $lastLogin