خانه زبان های برنامه نویسی توابع Constructor در PHP؛ اصول برنامه نویسی شی گرا زبان های برنامه نویسی PHP نوشته شده توسط: تیم فنی نیک آموز تاریخ انتشار: ۰۴ مرداد ۱۴۰۳ آخرین بروزرسانی: ۰۴ مرداد ۱۴۰۳ زمان مطالعه: 8 دقیقه ۰ (۰) توابع Constructor در PHP از جمله مزایایی است که کلاسها در اختیار برنامهنویسان قرار میدهند. با استفاده از این قابلیت امکان ایجاد ویژگیهای یک شی درست در زمان ساخت آن شی فراهم خواهد بود. به این صورت، یک قابلیت سریع و بهینه در اختیار برنامهنویس است تا بتواند مقادیر پیشفرض ویژگیها را اعمال کرده و به یکی از قابلیتهای اساسی برنامهنویسی شیءگرا دسترسی داشته باشد. توابع سازنده در PHP و نقش آنها در برنامهنویسی شی گرا توابع Constructor در PHP یکی از اجزای اساسی و مهم برنامهنویسی شیءگرا هستند که نقش مهمی در مقداردهی به اشیا اولیه خواهند داشت. زمانی که یک کلاس در زبان پیاچپی تعریف میکنید، مطمئنا در آینده نیاز است تا یک نمونهسازی از آن انجام دهید که این کار با نام ایجاد شیء نامگذاری میشود. توابع خاصی در برنامهنویسی شیءگرا وجود دارند که با نمونهسازی یک کلاس، به صورت خودکار فراخوانی خواهند شد تا کار خاصی را انجام دهند. هدف از استفاده از این توابع Constructor در PHP مقداردهیهای اولیه و انجام بعضی از تنظیمات اولیه در مورد اشیا است. شما نه تنها در زبان پیاچپی، بلکه در دیگر زبانها مانند پایتون، سی ++ و حتی جاوا نیز به این قابلیتها در کلاس دسترسی دارید. تعریف و مفهوم Constructor اگر به دنبال جواب این سوال هستید که مفهوم استفاده از Constructor در PHP چیست، در این بخش به آن پاسخ خواهیم داد. در بسیاری از موارد، نیاز است تا در همان ابتدای ایجاد یک شیء، چند ویژگی آن نیز تعریف شود. همچنین، شاید در یک شیء خاص، نیاز به اعمال تنظیماتی باشد که به راحتی با استفاده از توابع Constructor در PHP میتوان این کار را انجام داد. اجباری کردن تعریف پارامترها و ویژگیهای خاص در زمان مثالزنی از یک کلاس، مزیت مهمی است که توابع Constructor در اختیار شما قرار میدهد. همچنین، با این ویژگی، استفاده از اشیاء سادهتر، سریعتر و مطمئنتر خواهد بود. در ادامه یک تکه کد مشاهده میکنید که کاربرد اساسی توابع سازنده در PHP را مشخص میکند. این مثال، درک نحوه اعمال تنظیمات با استفاده از توابع سازنده را برایتان آسانتر خواهد کرد. در این مثال، یک کلاس دیتابیس تعریف شده است که دارای چند ویژگی است. در چنین کلاسهایی در زمان Instantiate کلاس، لازم است تا ویژگیهایی مانند نام کاربری، نام دیتابیس و … تعریف شوند. در غیر این صورت، در عمل یک نقص بزرگ به وجود خواهد آمد. توابع Constructor در PHP، این کار را آسان خواهند کرد. در این مثال، یک درخواست برای اتصال به دیتابیس mydb موجود در MySQL ارسال خواهد شد. در صورت فعال بودن دیتابیس MySQL و وبسرور XAMPP روی سیستمتان، میتوانید این کد را تست کنید: <?php class Database { private $host; private $user; private $password; private $dbname; private $connection; // Constructor public function __construct($host, $user, $password, $dbname) { $this -> host = $host; $this -> user = $user; $this -> password = $password; $this -> dbname = $dbname; // Establishing the database connection $this -> connect(); } // Method to establish database connection private function connect() { $this -> connection = new mysqli($this -> host, $this -> user, $this -> password, $this -> dbname); if ($this -> connection -> connect_error) { die("Connection failed: " . $this -> connection -> connect_error); } echo "Connected successfully to the database: " . $this -> dbname . "\n"; } // Method to close the database connection public function close() { if ($this -> connection) { $this -> connection -> close(); echo "Connection closed.\n"; } } } // Creating an instance of the Database class $db = new Database("localhost", "root", "", "mydb"); // Closing the connection $db -> close(); ?> با اجرای کد، خروجی زیر را در اختیار دارید: نحوه تعریف و استفاده از Constructor در PHP سازندهها معمولا و در اکثر موارد برای مقداردهی اولیه به ویژگی کلاس یا اعمال یک تنظیم خاص مورد استفاده قرار میگیرند. با استفاده از متد __construct میتوان سازنده کلاس را در پیاچپی تعریف کرد. در مثال زیر یک کلاس با نام میوه تعریف شده است که دارای ۲ ویژگی نام و وزن است. تابع سازنده، در زمان ایجاد یک شیء از این کلاس، ۲ ویژگی موردنظر را تعریف خواهد کرد: <?php class Fruit { public $name; public $weight; // Constructor public function __construct($name, $weight) { $this->name = $name; $this->weight = $weight; } // Method to display fruit information public function displayInfo() { echo "Name: " . $this->name . "\n"; echo "Weight: " . $this->weight . " grams\n"; } } // Creating instances of the Fruit class $apple = new Fruit("Apple", 150); $banana = new Fruit("Banana", 120); // Using the displayInfo method to show fruit information $apple->displayInfo(); $banana->displayInfo(); ?> در صورت اجرای این کد، خروجی را به صورت زیر دریافت میکنید: امکان تعریف ویژگیها به صورت محافظت شده نیز در کلاسها وجود دارد. در این صورت، میتوان برای تعریف آنها در زمان ایجاد شیء با تابع سازنده اقدام کرد. با این حال، در صورت protected بودن ویژگیها، امکان دسترسی از خارج از کلاس به آنها وجود ندارد. کلاس زیر با نام حیوان ساخته میشود و دارای دو ویژگی نام و رنگ است: <?php class Animal { protected $name; protected $color; // Constructor public function __construct($name, $color) { $this->name = $name; $this->color = $color; } // Method to display animal information public function displayInfo() { echo "Name: " . $this->name . "\n"; echo "Color: " . $this->color . "\n"; } } // Creating instances of the Animal class $cat = new Animal("Cat", "Black"); $dog = new Animal("Dog", "Brown"); // Using the displayInfo method to show animal information $cat->displayInfo(); $dog->displayInfo(); ?> با اجرای این کد، خروجی زیر را در ترمینال در اختیار دارید: در صورت نیاز به دسترسی به ویژگی از خارج از کلاس، خطا دریافت خواهید کرد: <?php class Animal { protected $name; protected $color; // Constructor public function __construct($name, $color) { $this->name = $name; $this->color = $color; } // Method to display animal information public function displayInfo() { echo "Name: " . $this->name . "\n"; echo "Color: " . $this->color . "\n"; } } // Creating instances of the Animal class $cat = new Animal("Cat", "Black"); $dog = new Animal("Dog", "Brown"); // Using the displayInfo method to show animal information $cat->displayInfo(); $dog->displayInfo(); echo $cat -> name; ?> ویژگی های Constructor در PHP ویژگیهای توابع Constructor در PHP، از اساسیترین نیازها هستند که در حالت کلی برای کلاس موردنظر تعریف خواهند شد. در همان ابتدای کلاس، این ویژگیها یا همان Propertyها تعریف میشوند که مختص کلاس هستند. ویژگیهای سازندهها با استفاده از تابع __construct به داخل سازنده منتقل میشوند تا عملیات موردنیاز روی آنها انجام شود. شما میتوانید ویژگیها را به صورت عمومی یا حفاظتشده تعریف کنید. همچنین، امکان تعریف ویژگیهای خصوصی نیز داخل کلاس وجود دارد تا در صورت نیاز، Constructor از آنها استفاده کند. در مثال زیر ۲ ویژگی برای کلاس حیوان تعریف شده است که هر دو خصوصی هستند. در نهایت، کلاس میتواند داخل توابع Constructor یا سایر توابع خود از آنها استفاده کند. <?php class Animal { private $name; private $color; // Constructor public function __construct($name, $color) { $this -> name = $name; $this -> color = $color; } // Getter for name public function getName() { return $this -> name; } // Setter for name public function setName($name) { $this -> name = $name; } // Getter for color public function getColor() { return $this -> color; } // Setter for color public function setColor($color) { $this -> color = $color; } // Method to display animal information public function displayInfo() { echo "Name: " . $this -> getName() . "\n"; echo "Color: " . $this -> getColor() . "\n"; } } // Creating instances of the Animal class echo "before: \r\n"; $cat = new Animal("Cat", "Black"); $dog = new Animal("Dog", "Brown"); // Using the displayInfo method to show animal information $cat -> displayInfo(); $dog -> displayInfo(); // Changing the name and color of the cat echo "after: \r\n"; $cat -> setName("Kitten"); $cat -> setColor("White"); // Displaying the updated information $cat -> displayInfo(); $dog -> displayInfo(); ?> در صورت اجرای کد، خروجی زیر را در ترمینال در اختیار دارید: پارامترهای ورودی در Constructor در زمان ایجاد یک شیء از کلاس، به احتمال زیاد پارامترها یا آرگومانهایی نیز به داخل توابع Constructor در PHP تزریق خواهد شد. این پارامترها با استفاده از عملیات موردنیاز در نهایت در تابع سازنده یا حتی سایر توابع مانند set و get مورد استفاده قرار میگیرند. داخل توابع سازنده در PHP با استفاده از اپراتور <- امکان اساین کردن پارامترها به متغیرهای تعریف شده فراهم است. در مثال زیر، امکان ارسال دو پارامتر نام و موقعیت شغلی وجود دارد. همچنین، تابع Constructor در PHP این دو پارامتر را دریافت کرده و در نهایت پس از اعمال تغییراتی روی آن، نام فرد را به $name اختصاص میدهد. <?php class Employee { private $name; private $position; // Constructor public function __construct($name, $position) { $this -> name = "Mr. " . $name; $this -> position = $position; } // Getter for name public function getName() { return $this -> name; } // Setter for name public function setName($name) { $this -> name = "Mr. " . $name; } // Getter for position public function getPosition() { return $this -> position; } // Setter for position public function setPosition($position) { $this -> position = $position; } // Method to display employee information public function displayInfo() { echo "Name: " . $this -> getName() . "\n"; echo "Position: " . $this -> getPosition() . "\n"; } } // Creating an instance of the Employee class $employee1 = new Employee("Paul Smith", "Developer"); $employee2 = new Employee("Jane Black", "Manager"); // Using the displayInfo method to show employee information $employee1 -> displayInfo(); $employee2 -> displayInfo(); ?> با اجرای کد در VSCode، خروجی زیر را در اختیار دارید: استفاده از مقادیر پیش فرض در Constructor در توابع Constructor در PHP امکان تعریف مقادیر پیشفرض نیز وجود دارد. به این صورت، شما میتوانید یک ویژگی را در همان ورودی تابع سازنده پی اچ پی تعریف کنید تا در صورت تعریف نشدن ویژگی از خارج، مقدار پیشفرض به داخل Constructor تزریق شود. مثال زیر را تصور کنید که در آن یک کلاس با نام خودرو تعریف شده است که دارای دو ویژگی رنگ و مدل است. رنگ خودرو به صورت پیشفرض برای تمامی اشیاء ساخته شده از این کلاس قرمز است اما میتوان آن را در صورت نیاز تغییر داد: <?php class Car { private $color; private $model; // Constructor with default value for color public function __construct($model, $color = "Red") { $this -> model = $model; $this -> color = $color; } // Getter for model public function getModel() { return $this -> model; } // Setter for model public function setModel($model) { $this -> model = $model; } // Getter for color public function getColor() { return $this -> color; } // Setter for color public function setColor($color) { $this -> color = $color; } // Method to display car information public function displayInfo() { echo "Model: " . $this -> getModel() . "\n"; echo "Color: " . $this -> getColor() . "\n"; } } // Creating instances of the Car class $car1 = new Car("Toyota Corolla"); $car2 = new Car("Honda Civic", "Blue"); // Using the displayInfo method to show car information $car1 -> displayInfo(); $car2 -> displayInfo(); ?> با اجرای این کد، در خروجی اطلاعات خودروها را در اختیار دارید: تفاوت بین Constructor و روش های دیگر ساخت اشیا ساخت اشیاء با استفاده از توابع Constructor در PHP مزایای بسیاری را فراهم میکند و همه چیز با استفاده از این روش آسان و سریع است. برای ساخت اشیاء و مقداردهی اولیه روشهای دیگری نیز وجود دارد اما سادهترین کار استفاده از توابع سازنده است. این توابع سازنده در PHP به صورت خودکار فراخوانی میشوند و براساس آنها امکان کاهش خطوط کد و افزایش سرعت عمل اجرای برنامهها فراهم است. در صورتی که برای ساخت اشیاء یا اعمال تنظیمات اولیه از توابع استاتیک استفاده شود، نیاز به فراخوانی دستی آنها است که در برنامههای پیچیده یک مشکل بزرگ به حساب خواهد آمد. رفع اشکال و مشکلات رایج در استفاده از Constructor توابع Constructor در PHP نیز ممکن است مانند سایر بخشهای کد پیاچپی دچار مشکل شوند. با این حال، روشهایی در دنیای برنامهنویسی تعیین شده است تا بتوان از مدل این خطاها در همان ابتدا اطلاع پیدا کرده و در صورت بروز چنین مشکلاتی آنها را در زمانی سریع برطرف کرد. یکی از بهترین متدها برای جلوگیری از خرابی کدها و متوقف شدن آنها استفاده از بلوک try catch است. با استفاده از این بلوک میتوان در زمانی سریع، خطای موردنظر را مشاهده کرد و آن را در خروجی در اختیار داشت. برای مثال، در کد زیر یک کلاس با نام حیوان تعریف شده است که دارای ۲ ویژگی نام و وزن است. این کلاس با استفاده از توابع Constructor در PHP در ابتدا نام را به متغیر مربوطه اساین میکند. در مرحله بعدی، وزن بررسی خواهد شد تا کمتر از صفر نباشد. در صورت وجود خطا در این مورد، با استفاده از دستور throw new Exception، امکان چاپ خطا در خروجی فراهم است: <?php class Animal { public $name; public $weight; // Constructor public function __construct($name, $weight) { $this -> name = $name; // Check if the weight is valid if ($weight < 0) { throw new Exception("Weight cannot be negative."); } $this -> weight = $weight; } // Method to display animal information public function displayInfo() { echo "Name: " . $this -> name . "\n"; echo "Weight: " . $this -> weight . " kg\n"; } } try { // Creating an instance of the Animal class with a negative weight to trigger an exception $cat = new Animal("Cat", -5); $cat -> displayInfo(); } catch (Exception $e) { // Catching the exception and displaying the error message echo "Error: " . $e -> getMessage() . "\n"; } ?> با اجرای این کد که ورودی -۵ را برای وزن تعیین میکند، یک خطا دریافت خواهید کرد که به صورت زیر است: جمع بندی توابع Constructor در PHP یک قابلیت مهم به حساب میآیند که پس از آموزش آن میتوانید بسیاری از عملیات مرتبط با کلاسها را آسان کنید. این توابع بخش جداییناپذیر از برنامه نویسی شیءگرا هستند و در طول مسیر مطمئنا با چنین موضوعاتی برخورد خواهید داشت. بنابراین، بهتر است در همین ابتدای مسیر به مفاهیم این چنینی تسلط کافی را پیدا کنید تا در آینده به راحتی از آنها استفاده کنید. چه رتبه ای میدهید؟ میانگین ۰ / ۵. از مجموع ۰ اولین نفر باش دانلود مقاله توابع Constructor در PHP؛ اصول برنامه نویسی شی گرا فرمت PDF صفحه حجم مگابایت دانلود مقاله معرفی نویسنده مقالات 324 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده تیم فنی نیک آموز پروفایل نویسنده معرفی محصول رضا هاشمیان مسیر آموزش برنامه نویسی PHP 3.950.000 تومان مقالات مرتبط ۰۳ مرداد زبان های برنامه نویسی راهنمای جامع انواع کتابخانه های کاتلین؛ ۱۰ کتابخانه بسیار محبوب در ۲۰۲۴ + کدهای واقعی تیم فنی نیک آموز ۰۲ مرداد زبان های برنامه نویسی Coroutine در پایتون | روش پیاده سازی، مدیریت و رفع مشکلات رایج تیم فنی نیک آموز ۲۸ تیر زبان های برنامه نویسی با بهترین روش ها برای تامین امنیت برنامه های Blazor آشنا شوید تیم فنی نیک آموز ۲۵ تیر زبان های برنامه نویسی راهنمای جامع نحوه ایجاد لیست تعاملی در React تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ