PHP இல் கன்ஸ்ட்ரக்டர்கள் மற்றும் டிஸ்ட்ரக்டர்கள்

PHP இல் OOP: ஒரு தொடக்க வழிகாட்டி
PHP இல் மாற்றிகளை அணுகவும்

PHP, பல பொருள் சார்ந்த நிரலாக்க மொழிகளைப் போலவே, வகுப்பு கட்டமைப்பாளர்கள் மற்றும் அழிப்பாளர்களை ஆதரிக்கிறது.

ஒரு கட்டமைப்பாளர் என்பது ஏ குறிப்பிட்ட செயல்பாடு ஒரு வர்க்கப் பொருள் உருவாகும்போது அது தானாகவே செயல்படுத்தப்படுகிறது. ஒரு கட்டமைப்பாளரின் முக்கிய செயல்பாடு, பொருளின் பண்புகளைத் துவக்கி, அவற்றை இயல்புநிலை மதிப்புகள் அல்லது பொருள் உருவாகும்போது வாதங்களாக வழங்கப்படும் மதிப்புகளுக்கு அமைப்பதாகும். கன்ஸ்ட்ரக்டர்கள் PHP இல் இரட்டை அடிக்கோடி (__) தொடரியல் மற்றும் “கட்டமை” என்ற சொற்றொடருடன் அறிவிக்கப்படுகிறார்கள். “__கட்டமைப்பு” என்பது கன்ஸ்ட்ரக்டர் முறையின் பெயராக இருக்க வேண்டும். "பெட்" வகுப்பில் உள்ள கன்ஸ்ட்ரக்டரின் உதாரணம் இங்கே:

class Pet {
  public $nick_name;
  public $color;

  function __construct($name, $color) {
    $this->nick_name = $name;
    $this->color = $color;
  }
  function get_name() {
    return $this->nick_name;
  }
  function get_color() {
    return $this->color;
  }
}

$cat = new Pet("Whiskers", "Black");
echo $cat->get_name();
echo "<br>";
echo $cat->get_color();

நாம் ஒரு புதிய "பெட்" பொருளை உருவாக்கி, "விஸ்கர்ஸ்" மற்றும் "பிளாக்" ஆகியவற்றை அளவுருக்களாக வைக்கும்போது, ​​கட்டமைப்பாளர் பொருளின் "புனைப்பெயர்" மற்றும் "வண்ணம்" பண்புகளை முறையே "விஸ்கர்ஸ்" மற்றும் "கருப்பு" என்று அமைக்கிறார். இந்த பண்புக்கூறுகளின் மதிப்புகள் "பெயரைப் பெறு" மற்றும் "நிறத்தைப் பெறு" முறைகளைப் பயன்படுத்தி மீட்டெடுக்கப்படலாம்.

மறுபுறம், ஒரு அழிப்பான் என்பது ஒரு குறிப்பிட்ட செயல்முறையாகும், இது ஒரு பொருள் அழிக்கப்படும்போதோ அல்லது நினைவகத்திலிருந்து அகற்றப்படும்போதோ செயல்படுத்தப்படுகிறது. தரவுத்தள இணைப்புகளை நிறுத்துதல் அல்லது நினைவகத்தை அழிப்பது போன்ற பொருள் பயன்படுத்தும் வளங்களை விடுவிப்பதே இதன் முதன்மை செயல்பாடு ஆகும். டிஸ்ட்ரக்டர்கள் PHP இல் இரட்டை அடிக்கோடி (__) தொடரியல் மற்றும் "அழித்தல்" என்ற வார்த்தையுடன் அறிவிக்கப்படுகின்றன. “__destruct” என்பது அழிப்பான் முறையின் பெயராக இருக்க வேண்டும். செயல்பாட்டில் உள்ள கிளாஸ் டிஸ்ட்ரக்டரின் உதாரணம் இங்கே:

class Pet {
  public $nick_name;
  public $color;

  function __construct($name, $color) {
    $this->nick_name = $name;
    $this->color = $color;
  }
  function get_name() {
    return $this->nick_name;
  }
  function get_color() {
    return $this->color;
  }
  function __destruct() {
    echo "Goodbye, " . $this->nick_name . "!<br>";
  }
}

$cat = new Pet("Whiskers", "Black");
echo $cat->get_name();
echo "<br>";
echo $cat->get_color();

இந்த எடுத்துக்காட்டில், ஸ்கிரிப்ட் முடிவடையும் போது அல்லது "பெட்" பொருள் அழிக்கப்படும் போது, ​​அழிப்பவர் உடனடியாக அழைக்கப்பட்டு, "குட்பை, விஸ்கர்ஸ்!" திரையில்.

PHP இல், கன்ஸ்ட்ரக்டர்கள் மற்றும் டிஸ்ட்ரக்டர்கள் கைமுறையாகச் செய்யப்படவில்லை என்பதைப் புரிந்துகொள்வது இன்றியமையாதது; ஒரு பொருள் உருவாக்கப்பட்ட அல்லது அழிக்கப்படும் போது அவை தானாகவே அழைக்கப்படுகின்றன. கன்ஸ்ட்ரக்டர் வாதங்களுக்கான இயல்புநிலை மதிப்புகளையும் நீங்கள் குறிப்பிடலாம். எடுத்துக்காட்டாக, கன்ஸ்ட்ரக்டரின் இரண்டாவது அளவுரு விருப்பமாக இருக்க வேண்டுமெனில், இது போன்ற இயல்புநிலை மதிப்பை நீங்கள் வரையறுக்கலாம்:

function __construct($name,$color = "Black") {
$this->nick_name = $name;
$this->color = $color;
}

இந்த எடுத்துக்காட்டில், இல்லை என்றால் மதிப்பு பொருள் உருவாக்கப்படும் போது இரண்டாவது அளவுரு வழங்கப்படும், "நிறம்" பண்பு தானாகவே "கருப்பு" அமைக்கப்படும்.

ஒரு குழந்தை வகுப்பு ஒரு பெற்றோர் வகுப்பை விரிவுபடுத்துகிறது மற்றும் விரும்புகிறது என்பதையும் கவனத்தில் கொள்ள வேண்டியது அவசியம் அழைப்பு அதன் சொந்த கன்ஸ்ட்ரக்டரில் உள்ள பெற்றோர் கிளாஸ் கன்ஸ்ட்ரக்டர், அவ்வாறு செய்ய “parent::__construct()” என்ற தொடரியல் பயன்படுத்தலாம். குழந்தை வகுப்பிற்கு அதன் சொந்த கட்டமைப்பாளர் இல்லையென்றால், பெற்றோர் வகுப்பின் கட்டமைப்பாளர் தனிப்பட்டதாக அறிவிக்கப்படாவிட்டால், அது ஒரு சாதாரண செயல்பாடாக மரபுரிமையாக இருக்கும்.

சுருக்கமாக, கட்டமைப்பாளர்கள் மற்றும் அழிப்பாளர்கள் PHP இல் உள்ள பொருட்களுக்கான ஆதாரங்களை துவக்க மற்றும் வெளியிட பயன்படுத்தப்படும் சிறப்பு முறைகள். ஒரு பொருள் உருவாக்கப்படும்போது அல்லது அழிக்கப்படும்போது அவை தானாகவே அழைக்கப்படுகின்றன, மேலும் பொருள் பண்புகளுக்கு இயல்புநிலை மதிப்புகளை அமைக்க அல்லது பிற பணிகளைச் செய்ய பயன்படுத்தப்படலாம்.

கேள்வி பதில்

கே: PHP இல் கட்டமைப்பாளர் என்றால் என்ன?

A: ஒரு கன்ஸ்ட்ரக்டர் என்பது ஒரு குறிப்பிட்ட செயல்பாடாகும், இது ஒரு வகுப்பு பொருள் உருவாகும்போது தானாகவே செயல்படுத்தப்படுகிறது. அதன் முதன்மை செயல்பாடு, பொருளின் பண்புகளை துவக்குவது, அவற்றை இயல்புநிலை மதிப்புகள் அல்லது பொருள் உருவாக்கப்படும் போது வாதங்களாக வழங்கப்படும் மதிப்புகளுக்கு அமைப்பதாகும். "கட்டுமானம்" என்ற வார்த்தையுடன் இரட்டை அடிக்கோடிட்டு (__) தொடரியல் பயன்படுத்தி கன்ஸ்ட்ரக்டர்கள் குறிப்பிடப்படுகின்றன, மேலும் கட்டமைப்பாளர் முறையின் பெயர் "__கட்டமைத்தல்" ஆக இருக்க வேண்டும்.

கே: PHP இல் கன்ஸ்ட்ரக்டர் எவ்வாறு அறிவிக்கப்படுகிறது?
A: கன்ஸ்ட்ரக்டர்கள் PHP இல் இரட்டை அடிக்கோடி (__) தொடரியல் மற்றும் “கட்டமை” என்ற சொற்றொடருடன் அறிவிக்கப்படுகிறார்கள். “__கட்டமைப்பு” என்பது கன்ஸ்ட்ரக்டர் முறையின் பெயராக இருக்க வேண்டும்.

கே: PHP இல் டிஸ்ட்ரக்டரின் நோக்கம் என்ன?
ப: ஒரு பொருள் அழிக்கப்படும்போது அல்லது நினைவகத்திலிருந்து நீக்கப்படும்போது, ​​ஒரு அழிப்பான் முறை தானாகவே செயல்படுத்தப்படும். தரவுத்தள இணைப்புகளை நிறுத்துதல் அல்லது நினைவகத்தை அழிப்பது போன்ற பொருள் பயன்படுத்தும் வளங்களை விடுவிப்பதே இதன் முதன்மை செயல்பாடு ஆகும்.

கே: PHP இல் ஒரு அழிப்பான் எவ்வாறு அறிவிக்கப்படுகிறது?
ப: PHP இல், "அழித்தல்" என்ற வார்த்தையுடன் இரட்டை அடிக்கோடி (__) தொடரியல் பயன்படுத்தி அழிப்பான்கள் அறிவிக்கப்படுகின்றன. டிஸ்ட்ரக்டர் முறையின் பெயர் “__டிஸ்ட்ரக்ட்” ஆக இருக்க வேண்டும்.

கே: PHPயில் கன்ஸ்ட்ரக்டர்கள் மற்றும் டிஸ்ட்ரக்டர்களை கைமுறையாக அழைக்க வேண்டுமா?
ப: இல்லை, ஒரு பொருள் உருவாக்கப்படும்போது அல்லது அழிக்கப்படும்போது, ​​கன்ஸ்ட்ரக்டர்கள் மற்றும் டிஸ்ட்ரக்டர்கள் தானாகவே அழைக்கப்படும், அவற்றை நாம் கைமுறையாக அழைக்க வேண்டிய அவசியமில்லை.

கே: PHP இல் உள்ள கன்ஸ்ட்ரக்டர் அளவுருக்களுக்கான இயல்புநிலை மதிப்புகளை அமைக்க முடியுமா?
A: ஆம், கன்ஸ்ட்ரக்டர் வாதங்களுக்கான இயல்புநிலை மதிப்புகளை நிறுவ PHP ஐப் பயன்படுத்தலாம். எடுத்துக்காட்டாக, கன்ஸ்ட்ரக்டரின் இரண்டாவது அளவுரு விருப்பமாக இருக்க வேண்டுமெனில், இது போன்ற இயல்புநிலை மதிப்பை நீங்கள் வரையறுக்கலாம்:

function __construct($name, $color = "Black") {
    $this->nick_name = $name;
    $this->color = $color;
  }

கே: குழந்தை வகுப்பு PHP இல் பெற்றோர் வகுப்பு கட்டமைப்பாளரை எவ்வாறு அழைக்கலாம்?
ப: ஒரு குழந்தை வகுப்பு ஒரு பெற்றோர் வகுப்பை விரிவுபடுத்தி, அதன் சொந்த கன்ஸ்ட்ரக்டரில் பெற்றோர் கிளாஸ் கன்ஸ்ட்ரக்டரை அழைக்க விரும்பினால், அவ்வாறு செய்ய “parent::__construct()” என்ற தொடரியல் பயன்படுத்தலாம்.

பயிற்சிகள்:

  1. "உருவாக்கு", "மாடல்" மற்றும் "ஆண்டு" ஆகியவற்றிற்கான பண்புகளுடன் "கார்" என்ற வகுப்பை உருவாக்கவும் மற்றும் ஒரு புதிய பொருள் உருவாக்கப்படும் போது இந்த மதிப்புகளை அமைக்கும் ஒரு கட்டமைப்பாளரை உருவாக்கவும்.
  2. "கார்" வகுப்பில் "getDetails" எனப்படும் ஒரு முறையைச் சேர்க்கவும், அது காரின் தயாரிப்பு, மாடல் மற்றும் ஆண்டை சரமாக வழங்கும்.
  3. "கார்" வகுப்பை விரிவுபடுத்தும் "எலக்ட்ரிக் கார்" என்று அழைக்கப்படும் குழந்தை வகுப்பை உருவாக்கவும், மேலும் "பேட்டரி லைஃப்"க்கான கூடுதல் சொத்து மற்றும் இந்த மதிப்பை அமைக்கும் கட்டமைப்பாளரையும் உருவாக்கவும்.
  4. "BatteryLife" சொத்தின் மதிப்பை வழங்கும் "getBatteryLife" எனப்படும் "ElectricCar" வகுப்பில் ஒரு முறையைச் சேர்க்கவும்.
  5. "ElectricCar" வகுப்பின் ஒரு பொருளை உருவாக்கி, காரின் விவரங்கள் மற்றும் பேட்டரி ஆயுளைக் காண்பிக்க நீங்கள் உருவாக்கிய முறைகளைப் பயன்படுத்தவும்.

பதில்கள்:

1.

class Car {
  public $make;
  public $model;
  public $year;

  function __construct($make, $model, $year) {
    $this->make = $make;
    $this->model = $model;
    $this->year = $year;
  }
}

2.

class Car {
  public $make;
  public $model;
  public $year;

  function __construct($make, $model, $year) {
    $this->make = $make;
    $this->model = $model;
    $this->year = $year;
  }
  function getDetails() {
    return $this->make . " " . $this->model . " " . $this->year;
  }
}

3.

class ElectricCar extends Car {
  public $batteryLife;

  function __construct($make, $model, $year, $batteryLife) {
    parent::__construct($make, $model, $year);
    $this->batteryLife = $batteryLife;
  }
}

4.

class ElectricCar extends Car {
  public $batteryLife;

  function __construct($make, $model, $year, $batteryLife) {
    parent::__construct($make, $model, $year);
    $this->batteryLife = $batteryLife;
  }
  function getBatteryLife() {
    return $this->batteryLife;
  }
}

5.

$electricCar = new ElectricCar("Tesla", "Model S", 2022, 300);
echo $electricCar->getDetails();
echo "<br>";
echo "Battery Life: " . $electricCar->getBatteryLife();
PHP இல் OOP: ஒரு தொடக்க வழிகாட்டி
PHP இல் மாற்றிகளை அணுகவும்
நெருக்கமான

PHP பற்றி புதுப்பித்த நிலையில் இருங்கள்!

நாங்கள் ஸ்பேம் செய்வதில்லை!

en English
X
டாப் உருட்டு