الكلمة protected تجعل الدالة أو الخاصية متاحة داخل الكلاس وفي أي كلاس يرثه، لكن ليس من خارجهما.
class Animal {
protected function sound() {
return "...";
}
}
class Cat extends Animal {
public function speak() {
return $this->sound(); // allowed: Cat inherits from Animal
}
}
$cat = new Cat();
echo $cat->speak(); // works
echo $cat->sound(); // Error: protected method
متى أستخدمها؟
عندما تكون الدالة تفصيلًا داخليًا، لكن تريد السماح للكلاسات الأبناء باستخدامها أو تعديل سلوكها.
الملخص
public: من كل مكان.protected: الكلاس وأبناؤه.private: الكلاس وحده.