पीएचपी ट्यूटोरियल

पीएचपी होम पीएचपी परिचय पीएचपी इंस्टाल पीएचपी सिंटैक्स पीएचपी टिप्पणियाँ पीएचपी चर पीएचपी इको / प्रिंट पीएचपी डेटा प्रकार पीएचपी स्ट्रिंग्स पीएचपी नंबर पीएचपी गणित पीएचपी स्थिरांक पीएचपी ऑपरेटर्स पीएचपी अगर ... और ... Elseif पीएचपी स्विच पीएचपी लूप्स पीएचपी कार्य पीएचपी सरणियाँ पीएचपी सुपरग्लोबल्स पीएचपी रेगेक्स

पीएचपी फॉर्म

PHP फॉर्म हैंडलिंग PHP फॉर्म सत्यापन पीएचपी फॉर्म की आवश्यकता पीएचपी फॉर्म यूआरएल/ई-मेल PHP फॉर्म पूर्ण

पीएचपी उन्नत

पीएचपी दिनांक और समय पीएचपी शामिल करें पीएचपी फाइल हैंडलिंग PHP फ़ाइल खोलें/पढ़ें PHP फ़ाइल बनाएँ/लिखें पीएचपी फ़ाइल अपलोड पीएचपी कुकीज़ पीएचपी सत्र पीएचपी फिल्टर पीएचपी फिल्टर उन्नत PHP कॉलबैक फ़ंक्शंस पीएचपी JSON पीएचपी अपवाद

पीएचपी ओओपी

पीएचपी ओओपी क्या है पीएचपी क्लासेस/ऑब्जेक्ट्स पीएचपी कंस्ट्रक्टर पीएचपी विनाशक पीएचपी एक्सेस संशोधक पीएचपी विरासत पीएचपी स्थिरांक पीएचपी सार वर्ग पीएचपी इंटरफेस पीएचपी लक्षण PHP स्टेटिक तरीके पीएचपी स्टेटिक गुण पीएचपी नेमस्पेस पीएचपी Iterables

MySQL डेटाबेस

MySQL डेटाबेस MySQL कनेक्ट MySQL डीबी बनाएँ MySQL तालिका बनाएँ MySQL डेटा डालें MySQL अंतिम आईडी प्राप्त करें MySQL एकाधिक सम्मिलित करें MySQL तैयार MySQL डेटा का चयन करें MySQL कहाँ MySQL ऑर्डर बाय MySQL डेटा हटाएं MySQL अद्यतन डेटा MySQL सीमा डेटा

पीएचपी एक्सएमएल

पीएचपी एक्सएमएल पार्सर्स पीएचपी सिंपलएक्सएमएल पार्सर पीएचपी सिंपलएक्सएमएल - प्राप्त करें पीएचपी एक्सएमएल एक्सपैट पीएचपी एक्सएमएल डोम

पीएचपी - AJAX

AJAX परिचय अजाक्स पीएचपी AJAX डेटाबेस अजाक्स एक्सएमएल AJAX लाइव खोज AJAX पोल

पीएचपी उदाहरण

पीएचपी उदाहरण पीएचपी संकलक पीएचपी प्रश्नोत्तरी पीएचपी व्यायाम पीएचपी प्रमाणपत्र

पीएचपी संदर्भ

पीएचपी सिंहावलोकन पीएचपी सरणी पीएचपी कैलेंडर पीएचपी तिथि पीएचपी निर्देशिका पीएचपी त्रुटि पीएचपी अपवाद पीएचपी फाइल सिस्टम पीएचपी फ़िल्टर पीएचपी एफ़टीपी पीएचपी JSON पीएचपी कीवर्ड पीएचपी लिबक्सएमएल पीएचपी मेल पीएचपी गणित पीएचपी विविध पीएचपी MySQLi पीएचपी नेटवर्क पीएचपी आउटपुट नियंत्रण पीएचपी रेगेक्स पीएचपी सिंपलएक्सएमएल पीएचपी स्ट्रीम पीएचपी स्ट्रिंग PHP वैरिएबल हैंडलिंग पीएचपी एक्सएमएल पार्सर पीएचपी ज़िप पीएचपी समयक्षेत्र

पीएचपी ओओपी - वंशानुक्रम


PHP - वंशानुक्रम क्या है?

OOP में वंशानुक्रम = जब एक वर्ग दूसरे वर्ग से प्राप्त होता है।

चाइल्ड क्लास पैरेंट क्लास से सभी पब्लिक और प्रोटेक्टेड प्रॉपर्टीज और मेथड्स को इनहेरिट करेगा। इसके अलावा, इसके अपने गुण और तरीके हो सकते हैं।

extends एक विरासत वर्ग को कीवर्ड का उपयोग करके परिभाषित किया गया है ।

आइए एक उदाहरण देखें:

उदाहरण

<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  public function intro() {
    echo "The fruit is {$this->name} and the color is {$this->color}.";
  }
}

// Strawberry is inherited from Fruit
class Strawberry extends Fruit {
  public function message() {
    echo "Am I a fruit or a berry? ";
  }
}
$strawberry = new Strawberry("Strawberry", "red");
$strawberry->message();
$strawberry->intro();
?>

उदाहरण समझाया गया

स्ट्रॉबेरी वर्ग को फल वर्ग से विरासत में मिला है।

इसका मतलब यह है कि स्ट्रॉबेरी वर्ग सार्वजनिक $name और $color गुणों के साथ-साथ विरासत के कारण फल वर्ग से सार्वजनिक __construct() और intro() विधियों का उपयोग कर सकता है।

स्ट्राबेरी वर्ग की भी अपनी विधि है: संदेश ()।



PHP - वंशानुक्रम और संरक्षित पहुँच संशोधक

पिछले अध्याय में हमने सीखा कि protectedगुणों या विधियों को कक्षा के भीतर और उस वर्ग से प्राप्त कक्षाओं द्वारा पहुँचा जा सकता है। इसका क्या मतलब है?

आइए एक उदाहरण देखें:

उदाहरण

<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  protected function intro() {
    echo "The fruit is {$this->name} and the color is {$this->color}.";
  }
}

class Strawberry extends Fruit {
  public function message() {
    echo "Am I a fruit or a berry? ";
  }
}

// Try to call all three methods from outside class
$strawberry = new Strawberry("Strawberry", "red");  // OK. __construct() is public
$strawberry->message(); // OK. message() is public
$strawberry->intro(); // ERROR. intro() is protected
?>

ऊपर के उदाहरण में हम देखते हैं कि यदि हम protected कक्षा के बाहर से एक विधि (परिचय ()) को कॉल करने का प्रयास करते हैं, तो हमें एक त्रुटि प्राप्त होगी। public तरीके ठीक काम करेंगे!

आइए एक और उदाहरण देखें:

उदाहरण

<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  protected function intro() {
    echo "The fruit is {$this->name} and the color is {$this->color}.";
  }
}

class Strawberry extends Fruit {
  public function message() {
    echo "Am I a fruit or a berry? ";
    // Call protected method from within derived class - OK
    $this -> intro();
  }
}

$strawberry = new Strawberry("Strawberry", "red"); // OK. __construct() is public
$strawberry->message(); // OK. message() is public and it calls intro() (which is protected) from within the derived class
?>

ऊपर के उदाहरण में हम देखते हैं कि सब ठीक काम करता है! ऐसा इसलिए है क्योंकि हम protected व्युत्पन्न वर्ग के अंदर से विधि (परिचय ()) कहते हैं।


PHP - विरासत में मिली विधियों को ओवरराइड करना

चाइल्ड क्लास में विधियों (उसी नाम का उपयोग करें) को फिर से परिभाषित करके इनहेरिट की गई विधियों को ओवरराइड किया जा सकता है।

नीचे दिए गए उदाहरण को देखें। चाइल्ड क्लास (स्ट्रॉबेरी) में __construct () और इंट्रो () मेथड्स पैरेंट क्लास (फ्रूट) में __construct () और इंट्रो () मेथड्स को ओवरराइड कर देंगे:

उदाहरण

<?php
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  public function intro() {
    echo "The fruit is {$this->name} and the color is {$this->color}.";
  }
}

class Strawberry extends Fruit {
  public $weight;
  public function __construct($name, $color, $weight) {
    $this->name = $name;
    $this->color = $color;
    $this->weight = $weight;
  }
  public function intro() {
    echo "The fruit is {$this->name}, the color is {$this->color}, and the weight is {$this->weight} gram.";
  }
}

$strawberry = new Strawberry("Strawberry", "red", 50);
$strawberry->intro();
?>

पीएचपी - अंतिम कीवर्ड

कीवर्ड का final उपयोग क्लास इनहेरिटेंस को रोकने या मेथड ओवरराइडिंग को रोकने के लिए किया जा सकता है।

निम्न उदाहरण दिखाता है कि वर्ग वंशानुक्रम को कैसे रोका जाए:

उदाहरण

<?php
final class Fruit {
  // some code
}

// will result in error
class Strawberry extends Fruit {
  // some code
}
?>

निम्न उदाहरण दिखाता है कि विधि ओवरराइडिंग को कैसे रोका जाए:

उदाहरण

<?php
class Fruit {
  final public function intro() {
    // some code
  }
}

class Strawberry extends Fruit {
  // will result in error
  public function intro() {
    // some code
  }
}
?>