PHP – محدودیت دسترسی‌ها (Access Modifiers)

محدودیت دسترسی‌ها (Access Modifiers)

ویژگی‌ها و متدها می‌توانند مودیفایرهای دسترسی داشته باشند که کنترل می‌کنند از کجا می‌توان به آن‌ها دسترسی داشت.

سه نوع مودیفایر دسترسی وجود دارد:

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

در مثال زیر ما سه مودیفایر دسترسی مختلف به سه ویژگی (name, color, weight) اضافه کرده‌ایم. در اینجا، اگر سعی کنید ویژگی name را تنظیم کنید، کار خواهد کرد (زیرا ویژگی name عمومی است و می‌تواند از هر جایی دسترسی یابد). اما اگر سعی کنید ویژگی‌های color یا weight را تنظیم کنید، منجر به خطای شدید خواهد شد (زیرا ویژگی‌های 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() را فراخوانی کنید، منجر به خطای شدید خواهد شد (زیرا این دو تابع به ترتیب محافظت‌شده و خصوصی هستند)، حتی اگر همه ویژگی‌ها عمومی باشند:

مثال

<?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): ویژگی‌ها و متدهایی که با این مودیفایر تعریف می‌شوند، فقط از درون کلاس و کلاس‌های فرزند قابل دسترسی هستند.
  • خصوصی (private): ویژگی‌ها و متدهایی که با این مودیفایر تعریف می‌شوند، فقط از درون همان کلاس قابل دسترسی هستند.

مودیفایرهای دسترسی به شما کمک می‌کنند تا کنترل بهتری بر روی دسترسی به داده‌ها و متدهای کلاس داشته باشید و کد خود را امن‌تر و خواناتر کنید.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - تاریخ‌ها (Dates)

JavaScript – تاریخ‌ها (Dates)

آبجکت‌های تاریخ (Date) در جاوااسکریپت آبجکت‌های تاریخ در جاوااسکریپت به ما امکان کار با تاریخ و زمان را می‌دهند....

بیشتر بخوانید
JavaScript - آرایه‌های ثابت (Array Const)

JavaScript – آرایه‌های ثابت (Array Const)

جاوااسکریپت: تعریف آرایه با const در سال 2015، جاوااسکریپت کلمه کلیدی مهمی به نام const را معرفی کرد. این...

بیشتر بخوانید
JavaScript - تکرار آرایه‌ها (Array Iteration)

JavaScript – تکرار آرایه‌ها (Array Iteration)

جاوا اسکریپت: تکرار بر روی آرایه‌ها جاوا اسکریپت روش‌های مختلفی برای تکرار (Iteration) بر روی آرایه‌ها ارائه می‌دهد که...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.