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

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

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

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

نظرات

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

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