سطوح دسترسی (Access Modifiers)
در شیء گرایی، «سطوح دسترسی (Access Modifiers)» تعیین می کند هر «ویژگی (Property)» و «متد (Method)» از کجا قابل دسترسی است. این موضوع نظم می دهد و از خطاهای بد جلوگیری می کند.
انواع سطوح دسترسی در PHP
public: از همه جا قابل دسترسی است. پیش فرض هم همین است.
protected: فقط داخل کلاس و کلاس های ارث بر قابل دسترسی است.
private: فقط داخل همان کلاس قابل دسترسی است.
نمونه: ویژگی ها با سطوح مختلف
در این مثال، تغییر $name مجاز است؛ اما تغییر $color و $weight خطا می دهد.
<?php
class Fruit {
public $name;
protected $color;
private $weight;
}
$mango = new Fruit();
$mango->name = 'Mango';
$mango->color = 'Yellow';
$mango->weight = '300';
?>
نکته: این خطاها به خاطر محدودیت دسترسی هستند، نه اشتباه نوشتاری.
نمونه: متدها با سطوح مختلف
اینجا، صدا زدن set_color() و set_weight() از بیرون خطا می دهد؛ حتی اگر ویژگی ها public باشند.
<?php
class Fruit {
public $name;
public $color;
public $weight;
function set_name($n) {
$this->name = $n;
}
protected function set_color($n) {
$this->color = $n;
}
private function set_weight($n) {
$this->weight = $n;
}
}
$mango = new Fruit();
$mango->set_name('Mango');
$mango->set_color('Yellow');
$mango->set_weight('300');
?>
گام های عملی سریع
- برای هر ویژگی، سطح درست را انتخاب کن.
- برای متدها، حداقل لازم را public بگذار.
- اگر ارث بری داری، از protected بیشتر استفاده کن.
نکته: برای مرور «سطوح دسترسی در PHP» این صفحه مرجع توست. همچنین مخرب و ارث بری را بخوان تا ارتباطشان روشن شود.
جمع بندی سریع
- public از همه جا در دسترس است.
- protected فقط کلاس و ارث برها.
- private فقط همان کلاس.
- برای کپسوله سازی، محدودیت ها را جدی بگیر.