php

جلسه ۵۳: کلاس ها و ارث بری قسمت ۴ در php

<?php
class Shape
{

    public $sides = 0;

    public $name = " ";

    public function __construct($name, $sides)
    { //defining a constructor
        $this->sides = $sides; //initializing $this->sides to $sides
        $this->name = $name; //initializing $this->name to $name
        
    }

    public function description()
    { //method to display name and sides of a shape
        echo "A $this->name with $this->sides sides.";
    }

}

$myShape = new Shape("hexagon", 6); //making an object and passing values to the constructor
$myShape->description(); // A shape with 6 sides

?>

فراخوانی سازنده

همانطور که در خط دوازدهم کد بالا می بینید، نحوه فراخوانی سازنده مانند دیگر اعضای معمولی تابع نیست.
  • در بخش اعلام شی فراخوانی می شود.
  • یک شی از shape ایجاد می کند.
  • سپس برای مقداردهی اولیه سازنده را فراخوانی می کند.
در این مثال، سازنده نام و تعداد وجه ها را به عنوان ورودی دریافت کرده و مقادیر آنها را تعیین می کند.

مقدمه ای بر تخریب کنندگان

تخریب کنندگان دقیقا معکوس سازندگان هستند، چرا که آخرین رفتار شی را تعریف می کنند و زمانی که دیگر از شی استفاده نمی شود اجرا می شوند. تخریب کننده یک شی که هیچ پارامتری نیز دریافت نمی کند، زمانی فراخوانی می شود که دیگر هیچ ارجاعی به شی داده نمی شود اما قضیه garbage collection باعث می شود که نتوانیم زمان دقیق اجرای تخریب کنندگان را مشخص کنیم. توجه: تخریب کنندگان فراخوانی نمی شوند بلکه به طور خودکار اجرا می شوند.
<?php
class Shape
{

    public $sides = 0;

    public $name = " ";

    public function __construct($name, $sides)
    { //defining a constructor
        $this->sides = $sides; //initializing $this->sides to $sides
        $this->name = $name; //initializing $this->name to $name
        
    }

    public function __destruct()
    { //destructor for Shape gets called at the end
        echo "Destructor Called!\n";
    }

    public function description()
    { //method to display name and sides of a shape
        echo "A $this->name with $this->sides sides.\n";
    }

}

$myShape = new Shape("hexagon", 6); //making an object and passing values to the constructor
$myShape->description(); // A shape with 6 sides
?>
به پایان بحث در مورد سازندگان و تخریب کنندگان رسیده ایم. در بخش بعدی در مورد انواع اصلاح کنندگان دسترسی که هنگام اعلام متغیرهای عضو در کلاس ها استفاده می شود بحث خواهیم کرد.
<?php

class Shape {

public $sides = 0;

public $name = " ";  

 //initializes $name to $Name and $sides to $Sides
public function __construct($Name, $Sides) 

?>

تعریف سازنده

سازنده ای برای shape می تواند به صورت زیر نوشته شود:
<?php
class Shape
{

    public $sides = 0;

    public $name = " ";

    public function __construct($name, $sides)
    { //defining a constructor
        $this->sides = $sides; //initializing $this->sides to $sides
        $this->name = $name; //initializing $this->name to $name
        
    }

    public function description()
    { //method to display name and sides of a shape
        echo "A $this->name with $this->sides sides.";
    }

}

$myShape = new Shape("hexagon", 6); //making an object and passing values to the constructor
$myShape->description(); // A shape with 6 sides

?>

فراخوانی سازنده

همانطور که در خط دوازدهم کد بالا می بینید، نحوه فراخوانی سازنده مانند دیگر اعضای معمولی تابع نیست.
  • در بخش اعلام شی فراخوانی می شود.
  • یک شی از shape ایجاد می کند.
  • سپس برای مقداردهی اولیه سازنده را فراخوانی می کند.
در این مثال، سازنده نام و تعداد وجه ها را به عنوان ورودی دریافت کرده و مقادیر آنها را تعیین می کند.

مقدمه ای بر تخریب کنندگان

تخریب کنندگان دقیقا معکوس سازندگان هستند، چرا که آخرین رفتار شی را تعریف می کنند و زمانی که دیگر از شی استفاده نمی شود اجرا می شوند. تخریب کننده یک شی که هیچ پارامتری نیز دریافت نمی کند، زمانی فراخوانی می شود که دیگر هیچ ارجاعی به شی داده نمی شود اما قضیه garbage collection باعث می شود که نتوانیم زمان دقیق اجرای تخریب کنندگان را مشخص کنیم. توجه: تخریب کنندگان فراخوانی نمی شوند بلکه به طور خودکار اجرا می شوند.
<?php
class Shape
{

    public $sides = 0;

    public $name = " ";

    public function __construct($name, $sides)
    { //defining a constructor
        $this->sides = $sides; //initializing $this->sides to $sides
        $this->name = $name; //initializing $this->name to $name
        
    }

    public function __destruct()
    { //destructor for Shape gets called at the end
        echo "Destructor Called!\n";
    }

    public function description()
    { //method to display name and sides of a shape
        echo "A $this->name with $this->sides sides.\n";
    }

}

$myShape = new Shape("hexagon", 6); //making an object and passing values to the constructor
$myShape->description(); // A shape with 6 sides
?>
به پایان بحث در مورد سازندگان و تخریب کنندگان رسیده ایم. در بخش بعدی در مورد انواع اصلاح کنندگان دسترسی که هنگام اعلام متغیرهای عضو در کلاس ها استفاده می شود بحث خواهیم کرد.

constructor ها و destructor ها

در این بخش می خواهیم درمورد سازندگان، تخریب کنندگان و نحوه تعریف و فراخوانی آنها صحبت کنیم. سرفصل مباحث این جلسه به شرح زیر می باشد:
  • معرفی
  • اعلام سازنده (constructor)
  • تعریف سازنده (constructor)
    • فراخوانی سازنده (constructor)
  • مقدمه ای بر تخریب کنندگان (destructor)

معرفی

زمانی که یک شی را اعلام می کنیم، از یک سازنده (constructor) برای مقداردهی اولیه متغیرهای عضو آن استفاده می شود. زمانی که شی از یک کلاس ساخته می شود، سازنده به طور خودکار فراخوانی می شود. توجه: سازنده معمولا عضوی از تابع است که به طور معمول به صورت public تعریف می شود. همچنین درنظر داشته باشید که برخلاف متد های تعریف شده داخل کلاس، سازنده نمی تواند مقداری را برگرداند.

اعلام سازنده

کلاس ها را می توان با استفاده از متد خاص ()construct__ تعریف کرد که به عنوان بخشی از ایحاد شی اجرا شود. بیایید تا نگاهی به نحوه تعریف آن بیاندازیم:
<?php

class Shape {

public $sides = 0;

public $name = " ";  

 //initializes $name to $Name and $sides to $Sides
public function __construct($Name, $Sides) 

?>

تعریف سازنده

سازنده ای برای shape می تواند به صورت زیر نوشته شود:
<?php
class Shape
{

    public $sides = 0;

    public $name = " ";

    public function __construct($name, $sides)
    { //defining a constructor
        $this->sides = $sides; //initializing $this->sides to $sides
        $this->name = $name; //initializing $this->name to $name
        
    }

    public function description()
    { //method to display name and sides of a shape
        echo "A $this->name with $this->sides sides.";
    }

}

$myShape = new Shape("hexagon", 6); //making an object and passing values to the constructor
$myShape->description(); // A shape with 6 sides

?>

فراخوانی سازنده

همانطور که در خط دوازدهم کد بالا می بینید، نحوه فراخوانی سازنده مانند دیگر اعضای معمولی تابع نیست.
  • در بخش اعلام شی فراخوانی می شود.
  • یک شی از shape ایجاد می کند.
  • سپس برای مقداردهی اولیه سازنده را فراخوانی می کند.
در این مثال، سازنده نام و تعداد وجه ها را به عنوان ورودی دریافت کرده و مقادیر آنها را تعیین می کند.

مقدمه ای بر تخریب کنندگان

تخریب کنندگان دقیقا معکوس سازندگان هستند، چرا که آخرین رفتار شی را تعریف می کنند و زمانی که دیگر از شی استفاده نمی شود اجرا می شوند. تخریب کننده یک شی که هیچ پارامتری نیز دریافت نمی کند، زمانی فراخوانی می شود که دیگر هیچ ارجاعی به شی داده نمی شود اما قضیه garbage collection باعث می شود که نتوانیم زمان دقیق اجرای تخریب کنندگان را مشخص کنیم. توجه: تخریب کنندگان فراخوانی نمی شوند بلکه به طور خودکار اجرا می شوند.
<?php
class Shape
{

    public $sides = 0;

    public $name = " ";

    public function __construct($name, $sides)
    { //defining a constructor
        $this->sides = $sides; //initializing $this->sides to $sides
        $this->name = $name; //initializing $this->name to $name
        
    }

    public function __destruct()
    { //destructor for Shape gets called at the end
        echo "Destructor Called!\n";
    }

    public function description()
    { //method to display name and sides of a shape
        echo "A $this->name with $this->sides sides.\n";
    }

}

$myShape = new Shape("hexagon", 6); //making an object and passing values to the constructor
$myShape->description(); // A shape with 6 sides
?>
به پایان بحث در مورد سازندگان و تخریب کنندگان رسیده ایم. در بخش بعدی در مورد انواع اصلاح کنندگان دسترسی که هنگام اعلام متغیرهای عضو در کلاس ها استفاده می شود بحث خواهیم کرد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا