วิธีการที่ได้รับการป้องกันใน OOP ใน PHP
PHP รองรับวิธีการที่ได้รับการป้องกัน
ด้วยตัวปรับแต่ง protected
วิธีการดังกล่าวจะถูกสืบทอด แต่ไม่สามารถมองเห็น
จากภายนอกคลาสได้
ลองมาดูวิธีการทำงานกัน เขียนคลาสหลัก ด้วยวิธีการที่ได้รับการป้องกัน:
<?php
class User {
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->capeFirst($this->name);
}
protected function capeFirst($str) {
return ucfirst($str);
}
}
?>
มาใช้วิธีการที่ได้รับการป้องกันนี้ ในคลาสลูก:
<?php
class Student extends User {
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->capeFirst($this->surn);
}
}
?>
ในโค้ดต่อไปนี้ ให้ทำให้เมธอดตัวช่วย ได้รับการป้องกัน:
<?php
class User {
public function setName($name) {
if ($this->notEmpty($name)) {
$this->name = $name;
}
}
public function getName() {
return $this->name;
}
public function notEmpty($str) {
return strlen($str) > 0;
}
}
class Employee extends User {
public function setSurn($surn) {
if ($this->notEmpty($surn)) {
$this->surn = $surn;
}
}
public function getSurn() {
return $this->surn;
}
}
?>