میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

سطح دسترسی در کلاس

ویژگی ها و متد ها می توانند سطح دسترسی داشته باشند که مکان دسترسی به آنها را کنترل می کند.

سه سطح دسترسی وجود دارد:

  • public– امکان دسترسی به متغیرها و متدها از نوع public در خارج از کلاس امکان پذیر است. این پیش فرض است
  • protected – امکان دسترسی به متغیرها و متدها از نوع protected فقط در کلاس جاری و فرزندان آن کلاس امکان پذیر است.
  • private – امکان دسترسی و به متغیرها و متدها از نوع private فقط در کلاس جاری امکان پذیر است.

در مثال زیر ما سه سطح دسترسی مختلف را به سه ویژگی اضافه کرده ایم. در اینجا ، اگر بخواهید ویژگی نام را تنظیم کنید ، به خوبی کار خواهد کرد (زیرا ویژگی نام عمومی است). با این حال ، اگر بخواهید ویژگی رنگ یا وزن را تنظیم کنید ، منجر به خطایی مهلک می شود (زیرا ویژگی رنگ و وزن protected  و private هستند):

مثال

<?php
class Fruit {
public $name;
protected $color;
private $weight;
}
$mango = new Fruit();
$mango->name = ‘Mango’// OK
$mango->color = ‘Yellow’// ERROR
$mango->weight = ‘۳۰۰’// ERROR
?>

در مثال بعدی ، سطح دسترسی را به دو روش اضافه کرده ایم. در اینجا ، اگر بخواهید تابع set_color () یا set_weight () را فراخوانی کنید ، منجر به خطای مهلکی می شود (زیرا این دو عملکرد protected و private در نظر گرفته می شوند) ، حتی اگر همه خصوصیات عمومی باشند:

مثال

<?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
?>


 

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟