logo

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - नया लेआउट बिल्डर अनुभव❗

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - स्टाइलिश, कस्टमाइज़ेबल ब्लॉक टाइप्स: स्लाइडशो, टैब्स, कार्ड्स, एकॉर्डियन्स और कई अन्य। बैकग्राउंड, DOM बॉक्स, जावास्क्रिप्ट प्लगइन्स के लिए बिल्ट-इन सेटिंग्स। आज ही लेआउट बिल्डिंग का भविष्य अनुभव करें।

डेमो EBT मॉड्यूल्स EBT मॉड्यूल्स डाउनलोड करें

❗एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - नया पैराग्राफ्स अनुभव

एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - एनालॉजिकल पैराग्राफ आधारित मॉड्यूल्स का सेट।

डेमो EPT मॉड्यूल्स EPT मॉड्यूल्स डाउनलोड करें

स्क्रॉल

PHP पाठ – पाठ 13 – OOP (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) की मूल बातें।

09/10/2025, by Ivan

पिछले पाठों में हमने PHP के निम्नलिखित डेटा प्रकारों के बारे में जाना था: लॉजिकल (boolean), पूर्णांक (integer), दशमलव (float), टेक्स्ट (string) और ऐरे (array)। इस पाठ में हम PHP में उपलब्ध एक और प्रकार के डेटा के बारे में जानेंगे — ऑब्जेक्ट (object)
ऑब्जेक्ट कुछ हद तक ऐरे के समान होते हैं — वे अपने भीतर विभिन्न प्रकार के डेटा रख सकते हैं, जैसे संख्याएँ, टेक्स्ट, ऐरे और यहाँ तक कि अन्य ऑब्जेक्ट भी।

ऑब्जेक्ट अपने भीतर अन्य प्रकार के डेटा रख सकते हैं, ठीक ऐरे की तरह। इन डेटा को हम ऑब्जेक्ट की प्रॉपर्टीज़ (properties) या फील्ड्स कहते हैं। इसके अलावा, ऑब्जेक्ट अपने अंदर फ़ंक्शंस भी रख सकते हैं, जिन्हें हम मेथड्स (methods) कहते हैं।

लेकिन ऑब्जेक्ट्स के दो महत्वपूर्ण अंतर ऐरे से हैं:

1. ऑब्जेक्ट्स में मेथड्स हो सकते हैं।

मेथड्स वे फ़ंक्शंस हैं जिन्हें ऑब्जेक्ट के नाम से बुलाया जाता है। किसी फ़ंक्शन को ऑब्जेक्ट से जोड़ना इस बात को दर्शाता है कि ऑब्जेक्ट कौन से कार्य कर सकता है और उसके साथ कौन से ऑपरेशन किए जा सकते हैं।

2. ऑब्जेक्ट्स क्लासेस से बनाए जाते हैं।

किसी ऑब्जेक्ट को बनाने से पहले हमें एक क्लास परिभाषित करना होता है। क्लास में हम यह तय करते हैं कि ऑब्जेक्ट में कौन-कौन सी प्रॉपर्टीज़ और मेथड्स होंगे। यह ऑब्जेक्ट की संरचना को परिभाषित करता है और यह समझने में मदद करता है कि ऑब्जेक्ट में कौन सा डेटा होगा और वह कौन से कार्य करेगा। क्लास से ऑब्जेक्ट बनाते समय हम उसे प्रारंभिक डेटा भी दे सकते हैं, ताकि नया ऑब्जेक्ट खाली न हो।

PHP में ऑब्जेक्ट डेटा रखने के लिए सबसे सुविधाजनक कंटेनर है। ऑब्जेक्ट्स हमें वास्तविक दुनिया की चीज़ों को कोड में दर्शाने में मदद करते हैं। उदाहरण के लिए, यदि हमारे पास एक डेटाबेस है जिसमें किताबों की जानकारी रखी जाती है, तो हर किताब में लेखक, पृष्ठों की संख्या, प्रकाशक, संस्करण संख्या, समीक्षा और टाइपोग्राफ़िक जानकारी जैसी विशेषताएँ होती हैं। इसलिए डेटा को बेहतर तरीके से संगठित करने के लिए हम एक Book (किताब) नामक क्लास बनाएँगे, जिसमें ये सभी प्रॉपर्टीज़ शामिल होंगी। इस प्रकार हमारे ऑब्जेक्ट्स वास्तविक दुनिया की वस्तुओं के समान बन जाते हैं। यह तरीका वेबसाइटों में डेटा प्रबंधन को भी आसान बनाता है, क्योंकि डेटाबेस तालिकाओं के नाम क्लासेस के समान और कॉलम नाम प्रॉपर्टीज़ के समान रखे जा सकते हैं।

PHP 5.2 और उससे ऊपर के संस्करणों की क्षमताएँ:

आइए अपने पहले क्लास को परिभाषित करें। ध्यान दें कि "class" एकवचन है, जबकि "objects" बहुवचन — यानी एक क्लास से कई ऑब्जेक्ट बनाए जा सकते हैं:

<?php
class book{

}
?>

अब इस क्लास से हम ऑब्जेक्ट बनाएँगे:

<?php
class book{
  
}

$book1 = new book;
$book2 = new book;
print_r($book1);
print_r($book2);
?>

new कीवर्ड का उपयोग करके हम क्लास से नया ऑब्जेक्ट बनाते हैं। प्रत्येक ऑब्जेक्ट को क्लास का उदाहरण (instance) कहा जाता है। ऊपर दिए गए कोड में हमने क्लास book के दो उदाहरण बनाए — $book1 और $book2।

PHP objects

जैसा कि आप देख सकते हैं, PHP यह दिखाता है कि यह ऑब्जेक्ट किस क्लास से बना है। अब आइए कुछ डेटा जोड़ते हैं। इसके लिए हमें पहले क्लास की प्रॉपर्टीज़ परिभाषित करनी होंगी। PHP 5.2 से प्रॉपर्टीज़ को तीन कीवर्ड्स से घोषित किया जा सकता है: public, protected, और private (पुराना तरीका var भी काम करता है)।

  • public — खुली (public) प्रॉपर्टीज़ और मेथड्स, जिन्हें क्लास के बाहर से भी एक्सेस किया जा सकता है।
  • protected — सुरक्षित (protected) प्रॉपर्टीज़, जिन्हें केवल उसी क्लास या उसके उपक्लास (child classes) में एक्सेस किया जा सकता है।
  • private — निजी (private) प्रॉपर्टीज़, जिन्हें केवल उसी क्लास के अंदर एक्सेस किया जा सकता है।

अभी के लिए हम सभी प्रॉपर्टीज़ को public रखेंगे:

class book{
  public $author;
  public $numberOfPages;
  public $year;
  public $publishingOffice;
  public $editionNumber;
}

अब हम इन प्रॉपर्टीज़ का उपयोग ऑब्जेक्ट के माध्यम से कर सकते हैं:

$book1 = new book;
$book1->author = 'Abramenko I.A';
$book1->numberOfPages = 192;
$book1->year = 2013;
$book1->publishingOffice = 'Moscow';
$book1->editionNumber = 1;
print_r($book1);

परिणामस्वरूप हमें एक भरा हुआ ऑब्जेक्ट मिलेगा। अब चलिए मेथड्स (क्लास के अंदर के फ़ंक्शंस) पर चर्चा करते हैं।

class book{
  public $author;
  public $numberOfPages;
  public $year;
  public $publishingOffice;
  public $editionNumber;

  public function getAuthor(){
    return $this->author;
  }

  public function getYear(){
    return $this->year;
  }
}

$this वेरिएबल वर्तमान ऑब्जेक्ट का प्रतिनिधित्व करता है। यानी जब आप $book1 का उपयोग करते हैं, तो क्लास के भीतर $this उसी के समान होता है।

हम अब डेटा को विभिन्न प्रारूपों (टेबल या div) में प्रदर्शित करने के लिए मेथड्स जोड़ सकते हैं:

public function displayTable(){
  $content = '<table border="1">';
  $content .= '<tr><td>Author</td><td>'. $this->getAuthor() . '</td></tr>';
  $content .= '</table>';
  return $content;
}

अब हमारे पास क्लास की संरचना तैयार है। हम पुस्तक के लिए नाम (name) जैसी अतिरिक्त प्रॉपर्टीज़ भी जोड़ सकते हैं:

class book{
  public $name;
  public $author;
  public $year;
  public $numberOfPages;
}

और फिर:

$book1 = new book;
$book1->name = 'Drupal: User guide';
$book1->author = 'Abramenko I.A';
$book1->year = 2013;
$book1->numberOfPages = 192;
print $book1->displayTable();

PHP 5.1.3 और उससे नीचे के संस्करणों की क्षमताएँ:

पुराने संस्करणों में प्रॉपर्टीज़ को परिभाषित करने के लिए var कीवर्ड का उपयोग किया जाता था:

class myClass{
  var $property;
}

ऐरे और ऑब्जेक्ट की तुलना का उदाहरण

मान लीजिए हमारे पास एक ऐरे है और हम उसके सभी मानों में 1 जोड़ना चाहते हैं।

$newArray = array(1,2,3,4,5);

function _increment_all_elements($customArray){
  foreach($customArray as $key){
    $customArray[] = $key+1;
  }
  return $customArray;
}
$newArray = _increment_all_elements($newArray);
print_r($newArray);

अब हम यही कार्य एक क्लास के अंदर करेंगे:

class WorkWithArray{
  var $myArray = array();

  function increment_all_elements($newArray){
    foreach($newArray as $key){
      $newArray[] = $key+1;
    }
    return $newArray;
  }
}

$myObject = new WorkWithArray;
$myObject->myArray = array(2,4,6,7);
$myObject->myArray = $myObject->increment_all_elements($myObject->myArray);
print_r($myObject);

इस प्रकार हम देख सकते हैं कि कैसे एक क्लास से ऑब्जेक्ट बनाया जाता है, उसकी प्रॉपर्टीज़ और मेथड्स तक पहुँचा जाता है, और कैसे यह कोड को अधिक संगठित और समझने योग्य बनाता है। आगे हम OOP की और अधिक उन्नत अवधारणाओं का अध्ययन करेंगे।