มีการเพิ่มแนวคิดเชิงวัตถุจำนวนมากใน PHP5 แนวคิดเชิงวัตถุของ PHP5 นั้นใกล้เคียงกับแนวคิดเชิงวัตถุของ Java มากขึ้น ที่นี่เราจะอธิบายฟังก์ชันของคีย์เวิร์ด static และ const ใน PHP5 โดยหวังว่าจะเป็นประโยชน์กับเพื่อน ๆ ที่กำลังเรียนรู้ PHP5
(1) คงที่
คีย์เวิร์ดแบบคงที่ในคลาสอธิบายว่าสมาชิกเป็นแบบคงที่ สามารถจำกัดการเข้าถึงจากภายนอกได้ เนื่องจากสมาชิกที่อยู่หลัง static อยู่ในคลาสและไม่ได้อยู่ในอินสแตนซ์อ็อบเจ็กต์ใด ๆ พวกเขาไม่สามารถเข้าถึงคลาสอื่นได้และสามารถเข้าถึงได้เฉพาะคลาสเท่านั้น การแชร์อินสแตนซ์สามารถรับประกันได้ว่าโปรแกรมจะปกป้องสมาชิกอย่างเต็มที่ ตัวแปรแบบคงที่ของคลาสนั้นคล้ายคลึงกับตัวแปรส่วนกลางมากและสามารถแชร์โดยอินสแตนซ์ทั้งหมดของคลาสได้ เช่นเดียวกับวิธีการแบบคงที่ของคลาสซึ่งคล้ายกับฟังก์ชันโกลบอล วิธีการคงที่ของชั้นเรียนสามารถเข้าถึงคุณสมบัติคงที่ของชั้นเรียน นอกจากนี้ จะต้องเข้าถึงสมาชิกแบบคงที่โดยใช้ตนเอง การใช้สิ่งนี้จะทำให้เกิดข้อผิดพลาด
(สำหรับความเหมือนและความแตกต่างระหว่างสิ่งนี้กับตัวเอง โปรดดูที่: http://blog.csdn.net/heiyeshuwu/archive/2004/11/03/165828.aspx )
(2) ต่อ
const เป็นคีย์เวิร์ดที่กำหนดค่าคงที่ คล้ายกับ #define ในภาษา C ซึ่งสามารถกำหนดค่าคงที่ในโปรแกรมได้ จะเกิดข้อผิดพลาด
ให้ตัวอย่างของโค้ดข้างต้น: (หมายเหตุ: รหัสต่อไปนี้มาจาก phpe.net)
<?php
class Counter
-
$count คงที่ส่วนตัว = 0;//กำหนดคุณสมบัติคงที่
const VERSION = 2.0;//กำหนดค่าคงที่
//Constructor
ฟังก์ชั่น__สร้าง()
-
ตัวเอง::$count++;
-
//ตัวทำลาย
ฟังก์ชั่น __ ทำลาย ()
-
ตัวเอง::$นับ--;
-
//กำหนดวิธีการคงที่
ฟังก์ชันคงที่ getCount()
-
กลับตัวเอง::$count;
-
}
//สร้างอินสแตนซ์
$c = ตัวนับใหม่ ();
// ทำการพิมพ์
print( Counter::getCount(). "<br>n" ); //ใช้อินพุตโดยตรงของชื่อคลาสเพื่อเข้าถึงเมธอดสแตติก Counter::getCount
//พิมพ์เวอร์ชันของคลาส
print( "Version used: " .Counter::VERSION. "<br>n" );
?>
โดยพื้นฐานแล้ว ณ จุดนี้ฉันได้แสดงความชัดเจนในสิ่งที่ฉันรู้ในใจแล้ว แต่ฉันรู้สึกว่าฉันยังคงอยู่ อึดอัดนิดหน่อยค่ะ เข้าใจแล้ว ช่วยแนะนำหน่อยค่ะ!
อีเมลของฉัน: [email protected]
WriteTime 2004-11-3 21:00
http://dev.csdn.net/author/heiyeshuwu/23f0d08c11bc4509b41844855d5c7063.html