PHP இல் மாற்றிகளை அணுகவும்

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

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

PHP இல் மாற்றியமைக்கும் வகைகளை அணுகவும்

PHP இல், அணுகல் மாற்றிகள் பொது, தனியார் அல்லது பாதுகாக்கப்பட்டவை என வகைப்படுத்தப்படுகின்றன.

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

எடுத்துக்காட்டுகள்

class Person{
  public $name;
  protected $age;
  private $height;
}

$x= new Person();
$x->name = 'John'; // OK
$x->age= '32'; // ERROR
$x->height= '5.4'; // ERROR

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

பொது, தனியார் மற்றும் பாதுகாக்கப்பட்ட முறைகள்

class Person{
  public $name;
  public $age;
  public $height;

  function set_name($n) {  // a public function (default)
    $this->name = $n;
  }
  protected function set_age($a) { // a protected function
    $this->age = $a;
  }
  private function set_height($h) { // a private function
    $this->height = $h;
  }
}

$person = new Person();
$person->set_name('John'); // OK
$person->set_age('26'); // ERROR
$person->set_height('5.4'); // ERROR

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

மேம்பட்ட அணுகல் மாற்றிகள்: சுருக்கம் மற்றும் இறுதி

வழக்கமான அணுகல் மாற்றிகளுக்கு கூடுதலாக "சுருக்கம்" மற்றும் "இறுதி" என பெயரிடப்பட்ட அதிநவீன அணுகல் மாற்றிகளை PHP வழங்குகிறது.

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

எடுத்துக்காட்டுகள்

abstract class Bike {

    private $maxSpeed = 80;

    // Simple method
    public function drivingSpeed() {
        return "Driving at " . $this->maxSpeed . " kilometer/hour";
    }

    // Abstract method
    abstract public function drive();
}

class Police extends Bike {

    public function drive() {
        return "Driving out of speed limit.";
    }

}

$bike= new Police();
echo $bike->drivingSpeed();

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

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

கேள்வி பதில்

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

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

கே: தனிப்பட்ட மற்றும் பாதுகாக்கப்பட்ட அணுகல் மாற்றிகளுக்கு இடையே உள்ள வேறுபாடு என்ன?
ப: ஒரு தனிப்பட்ட முறை அல்லது பண்புக்கூறு அதை உருவாக்கிய வகுப்பிற்குள் மட்டுமே அணுக முடியும், ஆனால் பாதுகாக்கப்பட்ட முறை அல்லது பண்புக்கூறு அதை உருவாக்கிய வகுப்பிற்குள்ளும் அந்த வகுப்பிலிருந்து பெறப்பட்ட வகுப்புகளுக்குள்ளும் அணுக முடியும்.

கே: PHP இல் சுருக்க அணுகல் மாற்றியைப் பயன்படுத்துவதற்கான உதாரணம் கொடுக்க முடியுமா?

abstract class Bike {
    private $maxSpeed = 80;
    abstract public function drive();
}
class Police extends Bike {
    public function drive() {
        return "Driving out of speed limit.";
    }
}

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

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

பயிற்சிகள்:

  1. PHP இல் இயல்புநிலை அணுகல் மாற்றி என்ன?
  2. PHP இல் தனிப்பட்ட மற்றும் பாதுகாக்கப்பட்ட அணுகல் மாற்றிகளுக்கு என்ன வித்தியாசம்?
  3. PHP இல் சுருக்க அணுகல் மாற்றியைப் பயன்படுத்துவதற்கான உதாரணத்தைக் கொடுங்கள்.
  4. இறுதி அணுகல் மாற்றி எவ்வாறு செயல்படுகிறது?
  5. நீங்கள் ஒரு சுருக்க வகுப்பின் பொருளை உருவாக்க முடியுமா? ஏன் அல்லது ஏன் இல்லை?
  6. குழந்தை வகுப்பில் இறுதி முறையை மீற முடியுமா? ஏன் அல்லது ஏன் இல்லை?
  7. அது உருவாக்கப்பட்ட வகுப்பிற்கு வெளியே ஒரு தனிப்பட்ட பண்புக்கூறுக்கு மதிப்பை ஒதுக்க முடியுமா? ஏன் அல்லது ஏன் இல்லை?
  8. பாதுகாக்கப்பட்ட முறையை அது உருவாக்கப்பட்ட வகுப்பிற்கு வெளியே அணுக முடியுமா? ஏன் அல்லது ஏன் இல்லை?

பதில்கள்:

  1. PHP இல் இயல்புநிலை அணுகல் மாற்றி பொதுவில் உள்ளது.
  2. PHP இல் உள்ள ஒரு தனிப்பட்ட முறை அல்லது பண்புக்கூறை அது உருவாக்கப்பட்ட வகுப்பிற்குள் மட்டுமே அணுக முடியும், அதேசமயம் பாதுகாக்கப்பட்ட முறை அல்லது பண்புக்கூறை அது உருவாக்கப்பட்ட வகுப்பிற்குள்ளும், அந்த வகுப்பிலிருந்து பெறப்படும் வகுப்புகளிலும் அணுக முடியும்.
abstract class Bike {
    private $maxSpeed = 80;
    abstract public function drive();
}
class Police extends Bike {
    public function drive() {
        return "Driving out of speed limit.";
    }
}

4. இறுதி அணுகல் மாற்றியை வகுப்புகள், முறைகள் மற்றும் பண்புகளுக்குப் பயன்படுத்தலாம். ஒரு வகுப்பு நீட்டிக்கப்படுவதைத் தடுக்க அல்லது ஒரு முறை மேலெழுதப்படுவதைத் தடுக்க இது பயன்படுகிறது.
5. இல்லை, ஒரு சுருக்க வர்க்கம் ஒரு பொருளை உருவாக்க முடியாது, ஏனெனில் ஒரு சுருக்க வகுப்பு மற்ற வகுப்புகளுக்கான வரைபடமாக செயல்படுகிறது மற்றும் ஒரு பொருளை உருவாக்க ஒரு கட்டமைப்பாளர் இல்லை.
6. இல்லை, குழந்தை வகுப்பில் ஒரு இறுதி முறையை நாம் மேலெழுத முடியாது, ஏனெனில் அது இறுதியானது எனக் குறிக்கப்பட்டு மேலெழுத முடியாது.
7. இல்லை, வகுப்பிற்குள் மட்டுமே பண்புக்கூறு கிடைக்கும் என்பதால், அதை உருவாக்கிய வகுப்பிற்கு வெளியே ஒரு தனிப்பட்ட பண்புக்கூறுக்கு மதிப்பை வழங்க முடியாது.
8. இல்லை, பாதுகாக்கப்பட்ட முறையை உருவாக்கிய வகுப்பிற்கு வெளியே அணுக முடியாது, ஆனால் அந்த வகுப்பிலிருந்து பெறப்பட்ட வகுப்புகளால் அதை அணுகலாம்.

PHP இல் கன்ஸ்ட்ரக்டர்கள் மற்றும் டிஸ்ட்ரக்டர்கள்
PHP OOP இல் பரம்பரை
நெருக்கமான

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

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

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