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