PHP – سازنده (Constructor)

PHP - تابع __construct

یک سازنده (Constructor) به شما اجازه می‌دهد که ویژگی‌های یک شیء را هنگام ایجاد آن شیء مقداردهی اولیه کنید.

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

توجه داشته باشید که تابع __construct با دو خط زیر (__) شروع می‌شود!

در مثال زیر می‌بینیم که استفاده از یک سازنده ما را از فراخوانی متد set_name() بی‌نیاز می‌کند که باعث کاهش میزان کد می‌شود:

مثال

<?php
class Fruit {
  public $name;
  public $color;
  function __construct($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}
$apple = new Fruit("Apple");
echo $apple->get_name();
?>

یک مثال دیگر:

مثال

<?php
class Fruit {
  public $name;
  public $color;
  function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  function get_name() {
    return $this->name;
  }
  function get_color() {
    return $this->color;
  }
}
$apple = new Fruit("Apple", "red");
echo $apple->get_name();
echo "<br>";
echo $apple->get_color();
?>

در این مثال‌ها، ما یک سازنده __construct تعریف کرده‌ایم که هنگام ایجاد یک شیء از کلاس Fruit، ویژگی‌های name و color را مقداردهی اولیه می‌کند. این باعث می‌شود که ما نیازی به فراخوانی جداگانه متدهای set_name() و set_color() نداشته باشیم و کد ما مختصرتر و خواناتر شود.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - تاریخ‌ها (Dates)

JavaScript – تاریخ‌ها (Dates)

آبجکت‌های تاریخ (Date) در جاوااسکریپت آبجکت‌های تاریخ در جاوااسکریپت به ما امکان کار با تاریخ و زمان را می‌دهند....

بیشتر بخوانید
JavaScript - آرایه‌های ثابت (Array Const)

JavaScript – آرایه‌های ثابت (Array Const)

جاوااسکریپت: تعریف آرایه با const در سال 2015، جاوااسکریپت کلمه کلیدی مهمی به نام const را معرفی کرد. این...

بیشتر بخوانید
JavaScript - تکرار آرایه‌ها (Array Iteration)

JavaScript – تکرار آرایه‌ها (Array Iteration)

جاوا اسکریپت: تکرار بر روی آرایه‌ها جاوا اسکریپت روش‌های مختلفی برای تکرار (Iteration) بر روی آرایه‌ها ارائه می‌دهد که...

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

نظرات

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

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