Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP ऑब्जेक्ट्स और रेफरेंस: कार्यप्रणाली समझें


परिचय

PHP में, ऑब्जेक्ट्स डिफ़ॉल्ट रूप से रेफरेंस द्वारा पास किए जाते हैं। यहां रेफरेंस एक उपनाम (alias) है जो दो अलग-अलग वेरिएबल्स को एक ही मान पर लिखने की अनुमति देता है। एक ऑब्जेक्ट वेरिएबल ऑब्जेक्ट को स्वयं मान के रूप में नहीं रखता; यह केवल एक ऑब्जेक्ट पहचानकर्ता (identifier) रखता है जिसके माध्यम से वास्तविक ऑब्जेक्ट ढूंढा जाता है।

जब किसी ऑब्जेक्ट को आर्गुमेंट के रूप में भेजा जाता है, रिटर्न किया जाता है या असाइन किया जाता है, तो अलग-अलग वेरिएबल्स aliases नहीं होते — बल्कि वे पहचानकर्ता की एक प्रति रखते हैं जो उसी ऑब्जेक्ट को इंगित करता है।

उदाहरण: spl_object_hash() के साथ ऑब्जेक्ट पहचान

PHP में spl_object_hash() फंक्शन होता है जो किसी ऑब्जेक्ट की यूनिक हैश ID लौटाता है। निम्न कोड में, दो ऑब्जेक्ट वेरिएबल्स जो एक ही ऑब्जेक्ट को संदर्भित करते हैं, वही ID लौटाते हैं:

<?php
class test1 {
    public $name;
}
$obj1 = new test1();
echo "ID of obj1: " . spl_object_hash($obj1) . "\n";
$obj2 = $obj1;
echo "ID of obj2: " . spl_object_hash($obj2);
?>

आउटपुट

ID of obj1: 000000004355dda6000000006f04b1a7
ID of obj2: 000000004355dda6000000006f04b1a7

रेफरेंस असाइनमेंट (& ऑपरेटर)

जब हम किसी ऑब्जेक्ट वेरिएबल का रेफरेंस बनाते हैं (नाम से पहले & लगाकर), तो प्रॉपर्टीज़ में कोई भी परिवर्तन ऑटोमैटिकली रेफरेंस वेरिएबल में प्रतिबिंबित होता है:

<?php
class test1 {
    public $name;
}
$obj1 = new test1();
echo "ID of obj1: " . spl_object_hash($obj1) . "\n";
$obj2 = &$obj1;
echo "ID of obj2: " . spl_object_hash($obj2) . "\n";
$obj1->name = "Amar";
echo "name: " . $obj2->name;
?>

आउटपुट

ID of obj1: 00000000163cf0b8000000003ad0ed93
ID of obj2: 00000000163cf0b8000000003ad0ed93
name: Amar

मुख्य बिंदु

  • ऑब्जेक्ट असाइनमेंट पहचानकर्ता की कॉपी बनाता है, न कि ऑब्जेक्ट की।
  • & ऑपरेटर से असाइनमेंट करने पर दोनों वेरिएबल्स एक ही पहचानकर्ता साझा करते हैं।
  • spl_object_hash() से ऑब्जेक्ट की विशिष्ट पहचान सत्यापित की जा सकती है।
  1. - PHP में date_modify() फंक्शन

    PHP में date_modify() फंक्शन टाइमस्टैम्प को बदलता है। सफलता पर NULL और विफलता पर FALSE लौटाता है। सिंटैक्स date_modify(object, modify) पैरामीटर्स object - date_create() द्वारा लौटाया गया DateTime ऑब्जेक्ट। modify - तारीख/समय स्ट्रिंग निर्दिष्ट करता है। रिटर्न वैल्यू सफलता पर NULL, विफलता पर FAL

  1. - PHP में method_exists() फंक्शन

    PHP में method_exists() फंक्शन जांचता है कि क्लास मेथड मौजूद है या नहीं। सिंटैक्स method_exists(object, name_of_method) पैरामीटर्स object - ऑब्जेक्ट इंस्टेंस या क्लास नाम। name_of_method - मेथड नाम। रिटर्न वैल्यू यदि method_name द्वारा दिया गया मेथड दिए गए ऑब्जेक्ट के लिए परिभाषित किया गया है त

  1. - PHP में get_object_vars() फंक्शन

    PHP में get_object_vars() फंक्शन दिए गए ऑब्जेक्ट की प्रॉपर्टीज़ प्राप्त करता है। यह निर्दिष्ट ऑब्जेक्ट के लिए परिभाषित ऑब्जेक्ट प्रॉपर्टीज़ की एक सहयोगी सरणी लौटाता है। सिंटैक्स get_object_vars(object) पैरामीटर्स object - एक ऑब्जेक्ट इंस्टेंस। रिटर्न वैल्यू निर्दिष्ट ऑब्जेक्ट के लिए परिभाषित ऑब