TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 609 subscribers
Post #46 156
#magic_method #oop #php
توابع __construct() و __destruct()

این دو متد از مهم ترین مجیک متد ها هستند به خصوص __construct() و می توان گفت مخالف یکدیگر هستند.
مجیک متد __construct() عملیاتی را در هنگام ساخته شدن یک شئ و مجیک متد __destruct() عملیاتی را در هنگام نابودی یک شئ انجام می دهند.

مجیک متد __construct() برای انجام تنظیمات اولیه و مقدماتی شئ استفاده شود. به طور کلی، در این تابع، متغیرها و ویژگی‌های شیء مقداردهی اولیه می‌شوند و عملیاتی که قبل از استفاده از شئ نیاز است انجام شود انجام می‌گیرد.
این مجیک متد می تواند ورودی داشته باشد و تعداد ورودی ها نا محدود هستند.
مثال:
class Fruit {
public $name;

public function __construct($name) {
$this->name = $name;
}
}

$fruit = new
Fruit
("banana");

در این مثال هنگام ساخته شدن شی Fruit ورودی به نام banana وارد
construct
می شود و داخل
public $name
ذخیره می شود.تمام این عملیات هنگام ساخت شئ انجام می شود و بعد از آن
$name
با مقدار banana در دسترس است.
———————————-
تابع __destruct() در هنگام حذف یک شئ از حافظه، فراخوانی می‌شود و می‌تواند برای انجام عملیاتی قبل از حذف شئ مورد استفاده قرار بگیرد. مثلا می‌تواند برای آزادسازی منابع خارجی مانند فایل‌ها یا پایگاه‌داده‌ها استفاده شود.
مثال:
class Fruit {
public $name;

public function __construct($name) {
$this->name = $name;
}

public function __destruct() {
echo $this->name . " is being deleted.";
}
}

$
fruit
= new Fruit("banana");
unset($
fruit
);

در مثال بالا در هنگام ساخت شئ متغیری با مقدار banana مقدار دهی میشود.
پس از unset کردن، شئ ما نابود و حذف شده در نتیجه در این مرحله destruct صدا زده می شود.
در مثال بالا اگر شئ ما unset نشود باز هم destruct اجرا می شود، زیرا کلاس ما عملیاتی برای انجام ندارد و در نتیجه نابود می شود و برنامه به اتمام می رسد. در نتیجه در این مرحله باز هم destruct اجرا می شود.
.
  • 👍 2
More from @amirhdeveloper
  1. Oct 8, 2026‍ اولین نسخه‌ی «قیچی» منتشر شد! ✂️ راست‌ش چند وقتی هست که پیامک‌های تبلیغاتی و اسپم، شدیدا…
  2. Oct 7, 2026بیاید از قدرت های لاراگرام بگم لاراگرام یک full-stack و ai-ready فریمورک برای توسعه ربات ه…
  3. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  4. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  5. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  6. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
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 →