این توابع با دو علامت زیرخط (__) شروع میشوند. مجیک متدها به برنامهنویسان اجازه میدهند تا رفتارهای خاصی را در زمان اجرا، مانند ساختن یک شیء یا نابودی آن، اضافه، تغییر یا حذف خصوصیات و غیره، به کلاسهای خود اضافه کنند.
در ادامه توضیحات کاملی برای هر یک از مجیک متد ها داده میشود.
اگرچه همه شما با مجیک متد های
__construct و __destruct آشنا هستید ولی لازم است توضیحاتی برای آنها نیز داده شود.متد
__construct به عنوان سازنده کلاس عمل میکند و به محض ایجاد نمونهای از کلاس فراخوانی میشود. این متد معمولاً برای اولیهسازی خصوصیات شیء و انجام تنظیمات اولیه استفاده میشود.مثال:
class Person {
public $name;
public $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function greet() {
return "Hello, my name is " . $this->name . " and I am " . $this->age . " years old.";
}
}
$person = new Person("John", 30);
echo $person->greet();متد
__construct زمانی فراخوانی میشود که یک نمونه جدید از کلاس Person ساخته میشود. این متد دو پارامتر name و age را میگیرد و آنها را به خصوصیات شیء اختصاص میدهد. این روش برای اولیهسازی شیء با دادههای اولیه استفاده میشود.
متد greet یک پیام خوشآمدگویی تولید میکند که نام و سن شخص را شامل میشود که در متد
__construct مقدار دهی شده است.———
متد
__destruct نابودکننده کلاس است و زمانی فراخوانی میشود که شیء دیگر مورد استفاده قرار نگیرد یا اسکریپت به پایان برسد. این متد معمولاً برای انجام پاکسازی، آزادسازی منابع یا سایر تنظیمات پایانی قبل از از بین رفتن شیء استفاده میشود.مثال:
class FileHandler {
private $file;
public function __construct($filename) {
$this->file = fopen($filename, 'w');
}
public function write($data) {
fwrite($this->file, $data);
}
public function __destruct() {
fclose($this->file);
echo "File closed.\n";
}
}
$file = new FileHandler("example.txt");
$file->write("Hello World");
// Result: "File closed."متد
__construct برای باز کردن یک فایل جدید یا موجود استفاده میشود و فایل را در پراپرتی file ذخیره میکند.متد write دادهای که به آن داده شده را در فایل مینویسد.
و در نهایت که شئ کاری برای انجام دادن ندارد و اسکریپت به پایان میرسد متد
__destruct فراخوانی میشود و فایل باز شده را می بندد و پیام File closed. را چاپ میکند.👤 AmirHossein
💎 Channel: @DevelopixPHP