ويژگي ها ومتدها ميتوانند، داراي شرايط دسترسي باشند .شرا يط را براي دسترسي اصلاح كننده ها (modifiers)برقرار ميكنند
سه نوع اصلاح كننده دسترسي وجود دارد مطابق زير:
publicـ دسترسي براي ويژگي ومتد در هرجائي وجود دارد .اين پيش فرض دسترسي است.
protectedـ ويژگي ها ومتد در داخل كلاس وكلاس هاي مشتق شده قابل دسترسي است.
privateـ ويژگي ومتد فقط در كلاس قابل دسترسي است .
مثال ـ دراسكريپت زير سه نوع اصلاح كننده در كلاس منظور شده است .اينها براي $name,$colorو$weight ميباشند.دراسكريپت ميتوانيد نام را تغيير داده يا بدست آوريد، چون دسترسيpublic بوده بلامانع است .اما براي رنگ و وزن خارج ازكلاس امكان پذير نيست و در صورت استفاده با خطا مواجه ميشويد، چون آنهاProtected و private هستند .
<?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_weight() , set_color()كوشش كنيد ، باFatal error مواجه ميشويد. دليل اين اتفاق اصلاح كننده ايست كه براي آنها در نظرگرفته شده است .انها ازنوعprotected و privateميباشند. تابعset_name() بصورتpublic ميباشد واجازه استفاده ازآن در هرجاي اسكريپت مجاز ميباشد.
<?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 $mango->set_color('Yellow'); // ERROR $mango->set_weight('300'); // ERROR ?>