คำจำกัดความตัวแปรของคลาสใน php5 oop เป็นไปตามการควบคุมการเข้าถึง ซึ่งก็คือ:
สาธารณะ หมายถึง ทั่วโลก และสามารถเข้าถึงได้โดยคลาสย่อยภายในและภายนอกคลาส
ส่วนตัว หมายถึง ส่วนตัว และสามารถใช้ได้ภายในคลาสนี้เท่านั้น
ป้องกัน หมายถึง ป้องกัน เฉพาะคลาสนี้หรือสามารถเข้าถึงได้ในคลาสย่อยหรือคลาสพาเรน
ต์
คลาสเบสคลาส {
สาธารณะ $public = 'สาธารณะ';
ส่วนตัว $private = 'ส่วนตัว';
ป้องกัน $protected = 'ป้องกัน';
ฟังก์ชั่น __construct(){
}
ฟังก์ชัน print_var(){
พิมพ์ $this->public;echo '<br />';
พิมพ์ $this->private; echo '<br />';
พิมพ์ $this->protected; echo '<br />';
}
}
คลาสย่อยขยาย BaseClass {
// public $public = 'public2';
ป้องกัน $protected ='protected2';
ฟังก์ชั่น __ สร้าง () {
echo $this->protected;//สามารถเข้าถึงได้ เนื่องจากคลาสถูกกำหนดให้เป็นคลาสที่มีการป้องกัน ดังนั้นจึงสามารถอยู่ในคลาสนี้หรือคลาสย่อยได้ และสามารถทำซ้ำค่าในคลาสย่อยได้
เสียงสะท้อน '<br />';
echo $this->private;//error เนื่องจากเป็นแบบส่วนตัวและสามารถใช้ได้เฉพาะในคลาส baseclass ที่กำหนดไว้เท่านั้น
-
}
$obj1 = BaseClass ใหม่();
$obj1->print_var();
//echo $obj1->protected;//error เนื่องจากได้รับการป้องกัน จึงสามารถเรียกได้เฉพาะภายในคลาสนี้หรือในคลาสย่อยและคลาสพาเรนต์เท่านั้น
//echo $obj1->private;//ข้อผิดพลาดส่วนตัวดังที่กล่าวข้างต้น สามารถเรียกได้ภายในคลาสนี้เท่านั้น
เสียงสะท้อน $obj1->สาธารณะ;
เสียงสะท้อน "<ชม. />";
$obj2 = คลาสย่อยใหม่();
เสียงสะท้อน '<br />';
echo $obj2->สาธารณะ;echo '<br />';
echo $obj2->ป้องกัน;
//echo $obj2->ส่วนตัว;//error
//echo $obj2->ป้องกัน;
-