TGViewer
| کانال توسعه‌دهندگان PHP | | کانال توسعه‌دهندگان PHP | @developixphp · 1.68K subscribers
Post #33 706
مجیک متد های __isset و __unset برای کنترل دسترسی به ویژگی‌هایی که نامعلوم یا ناقابل دسترس هستند.

مجیک متد __isset:
مجیک متد __isset زمانی فعال می‌شود که تابع isset() یا empty() بر روی ویژگی‌هایی که در کلاس به صورت مستقیم قابل دسترسی نیستند، استفاده شود. این مجیک متد به شما امکان می‌دهد که تعیین کنید آیا یک ویژگی موجود است یا خیر، حتی اگر این ویژگی به صورت خصوصی یا محافظت‌شده تعریف شده باشد.
این مجیک متد یک ورودی میگیرد که نام پراپرتی است که تابع isset یا empty بر روی آن فراخوانی شده است.


مثال:
تصور
کنید یک کلاس با ویژگی‌های خصوصی داریم و می‌خواهیم بررسی کنیم که آیا یک ویژگی خصوصی تنظیم شده است یا خیر:
class User {
private $data = [
'name' => 'John Doe',
'email' => 'john@example.com'
];

public function __isset($property) {
return isset($this->data[$property]);
}
}

$user = new User();
echo isset($user->name) ? 'Name is set' : 'Name is not set';
// Output: Name is set


در این مثال بررسی میشود که پراپرتی name در کلاس User موجود است یا خیر، این درحالی است که این پراپرتی به طور مستقیم در دسترس نیست.

مجیک متد __unset:
مجیک متد __unset زمانی فعال می‌شود که تابع unset() بر روی ویژگی‌هایی که به طور مستقیم دسترسی‌پذیر نیستند، فراخوانی شود. این به شما اجازه می‌دهد که تعریف کنید چه اتفاقی باید هنگام حذف یک ویژگی رخ دهد.
این مجیک متد یک ورودی میگیرد که نام پراپرتی unset شده میباشد.

مثال:
class User {
private $data = [
'name' => 'John Doe',
'email' => 'john@example.com'
];

public function __unset($property) {
echo "Unsetting property '$property'\n";
unset($this->data[$property]);
}
}

$user = new User();
unset($user->name);


در این مثال، وقتی unset($user->name) فراخوانی می‌شود، مجیک متد __unset اجرا می‌شود و پیامی مبنی بر حذف ویژگی نمایش داده می‌شود و ویژگی مورد نظر را از آرایه داده‌های داخلی کلاس حذف می‌کند.
این نیز درحالی است که پراپرتی name مستقیما در کلاسی User موجود نمیباشد.


این دو مجیک متد، __isset و __unset، ابزارهای مفیدی در PHP هستند که به شما اجازه می‌دهند تا رفتار دسترسی به ویژگی‌ها و حذف آن‌ها در کلاس‌های شما را به شکل کنترل‌شده‌ای مدیریت کنید. استفاده از این مجیک متدها به خصوص در مواقعی که با داده‌های حساس یا پیچیده کار می‌کنید، می‌تواند بسیار مفید باشد. این تکنیک‌ها به شما اجازه می‌دهند تا یک واسط کاربری برنامه‌نویسی روان‌تر و ایمن‌تری را ارائه دهید، زیرا می‌توانید جلوی دسترسی مستقیم به ویژگی‌های داخلی کلاس را بگیرید و در عین حال به کاربران اجازه دهید تا تنها عملیات‌های معتبر را روی آن‌ها انجام دهند.

👤 AmirHossein

💎 Channel: @DevelopixPHP
  • 🔥 5
  • 👍 2
More from @developixphp
  1. Sep 26, 2026این کد موقع اجرا چه خروجی‌ای می‌ده و مشکلش کجاست؟ 🔖 #PHP #پی_اچ_پی 👤 Developix 💎 Channe…
  2. Sep 25, 2026🔥 پکیج: قراردادهای ترجمه سیمفونی اگر کد PHP را برای چندزبانگی می‌نویسید، بهتر است منطق بر…
  3. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  4. Sep 11, 2026ارسال ایمیل تأیید ثبت‌نام، بازیابی رمز عبور یا نوتیفیکیشن سفارش، تقریباً توی هر پروژه‌ PHP…
  5. Sep 10, 2026برنامه نویسی سوکت در PHP بخش اول عبارت دیگر در ارتباط های غیر سوکت برای ارسال یک پالس از س…
  6. Aug 31, 2026🔥 پکیج: استاندارد PSR-11 برای Container استاندارد PSR-11 فقط یه interface مشترک برای Cont…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →