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

PHP ArrayAccess इंटरफेस

परिचय

PHP में, ArrayAccess इंटरफेस का उपयोग एक क्लास विकसित करने के लिए किया जाता है जो इसकी प्रॉपर्टी में से एक (जो एक सरणी है) को सरणी-जैसी एक्सेस प्रदान करता है। ऐसी सरणी प्रॉपर्टी को ऑब्जेक्ट निर्माण के दौरान एक्सपोज़ किए बिना मैनिपुलेट किया जा सकता है। ArrayAccess इंटरफेस निम्न एब्स्ट्रैक्ट मेथड परिभाषित करता है:

सिंटैक्स

ArrayAccess {
    /* Methods */
    abstract public offsetExists ( mixed $offset ) : bool
    abstract public offsetGet ( mixed $offset ) : mixed
    abstract public offsetSet ( mixed $offset , mixed $value ) : void
    abstract public offsetUnset ( mixed $offset ) : void
}

मेथड्स

  • ArrayAccess::offsetExists - क्या कोई ऑफसेट मौजूद है
  • ArrayAccess::offsetGet - पुनर्प्राप्त करने के लिए ऑफसेट
  • ArrayAccess::offsetSet - निर्दिष्ट ऑफसेट पर मान असाइन करें
  • ArrayAccess::offsetUnset - एक ऑफसेट को अनसेट करें

ArrayAccess उदाहरण

निम्न उदाहरण में, एक एसोसिएटिव सरणी myclass की इंटरनल प्राइवेट प्रॉपर्टी है। कुंजी ऑफसेट के रूप में कार्य करती है। हम सरणी में एक आइटम सेट, पुनर्प्राप्त और अनसेट कर सकते हैं। यदि ऑफसेट नहीं दिया गया है, तो इसे पूर्णांक माना जाता है, हर बार अगले इंडेक्स पर बढ़ता हुआ।

उदाहरण 1 (एसोसिएटिव सरणी)

<?php
class myclass implements ArrayAccess {
    private $arr = array();
    public function __construct() {
        $this->arr = array(
            "Mumbai" => "Maharashtra",
            "Hyderabad" => "A.P.",
            "Patna" => "Bihar",
        );
    }
    public function offsetSet($offset, $value) {
        if (is_null($offset)) {
            $this->arr[] = $value;
        } else {
            $this->arr[$offset] = $value;
        }
    }
    public function offsetExists($offset) {
        return isset($this->arr[$offset]);
    }
    public function offsetUnset($offset) {
        unset($this->arr[$offset]);
    }
    public function offsetGet($offset) {
        return isset($this->arr[$offset]) ? $this->arr[$offset] : null;
    }
}
$obj = new myclass();
var_dump(isset($obj["Mumbai"]));
var_dump($obj["Mumbai"]);
unset($obj["Mumbai"]);
var_dump(isset($obj["Mumbai"]));
$obj["Bombay"] = "Maharashtra";
var_dump($obj["Bombay"]);
$obj["Chennai"] = 'Tamilnadu';
$obj[] = 'New State';
$obj["Hyderabad"] = 'Telangana';
print_r($obj);
?>

आउटपुट

bool(true)
string(11) "Maharashtra"
bool(false)
string(11) "Maharashtra"
myclass Object(
    [arr:myclass:private] => Array(
        [Hyderabad] => Telangana
        [Patna] => Bihar
        [Bombay] => Maharashtra
        [Chennai] => Tamilnadu
        [0] => New State
    )
)

उदाहरण 2 (इंडेक्स्ड सरणी)

क्लास की सरणी प्रॉपर्टी एक इंडेक्स्ड सरणी भी हो सकती है। उस मामले में, एलिमेंट का इंडेक्स (0 से शुरू) ऑफसेट के रूप में कार्य करता है। offsetSet() मेथड को ऑफसेट आर्गुमेंट के बिना कॉल करने पर, सरणी का इंडेक्स अगले उपलब्ध पूर्णांक पर बढ़ जाता है।

<?php
class myclass implements ArrayAccess {
    private $arr = array();
    public function __construct() {
        $this->arr = array("Mumbai", "Hyderabad", "Patna");
    }
    public function offsetSet($offset, $value) {
        if (is_null($offset)) {
            $this->arr[] = $value;
        } else {
            $this->arr[$offset] = $value;
        }
    }
    public function offsetExists($offset) {
        return isset($this->arr[$offset]);
    }
    public function offsetUnset($offset) {
        unset($this->arr[$offset]);
    }
    public function offsetGet($offset) {
        return isset($this->arr[$offset]) ? $this->arr[$offset] : null;
    }
}
$obj = new myclass();
var_dump(isset($obj[0]));
var_dump($obj[0]);
unset($obj[0]);
var_dump(isset($obj[0]));
$obj[3] = "Pune";
var_dump($obj[3]);
$obj[4] = 'Chennai';
$obj[] = 'NewDelhi';
$obj[2] = 'Bengaluru';
print_r($obj);
?>

आउटपुट

bool(true)
string(6) "Mumbai"
bool(false)
string(4) "Pune"
myclass Object(
    [arr:myclass:private] => Array(
        [1] => Hyderabad
        [2] => Bengaluru
        [3] => Pune
        [4] => Chennai
        [5] => NewDelhi
    )
)

उपयोग: कॉन्फ़िगरेशन ऑब्जेक्ट, कलेक्शन रैपर, डेटा ट्रांसफर ऑब्जेक्ट जो सरणी-जैसे व्यवहार करते हैं।

  1. - PHP में इंटरफेस समझाया गया

    इस लेख में, हम PHP इंटरफेस का उपयोग करना सीखेंगे जो PHP ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में सबसे महत्वपूर्ण संरचनात्मक पैटर्न में से एक है। एक इंटरफेस हमें प्रोग्राम बनाने में सक्षम बनाता है, उन पब्लिक मेथड्स को निर्दिष्ट करता है जिन्हें एक क्लास को इम्प्लीमेंट करना होगा, बिना उन विशिष्ट मेथड्स की ज

  1. - PHP में पॉलीमॉर्फिज्म समझाया गया

    शुरुआत में, पॉलीमॉर्फिज्म ग्रीक शब्दों Poly (जिसका अर्थ कई) और morphism (जिसका अर्थ रूप) से लिया गया है। पॉलीमॉर्फिज्म ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में एक पैटर्न का वर्णन करता है जहां विभिन्न क्लासेज में समान काम करने वाले मेथड्स का समान नाम होना चाहिए। पॉलीमॉर्फिज्म अनिवार्य रूप से एक OOP पैटर्न

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

    PHP में interface_exists() फंक्शन जांचता है कि इंटरफेस परिभाषित किया गया है या नहीं। यदि name_of_interface द्वारा दिया गया इंटरफेस परिभाषित किया गया है तो TRUE लौटाता है, अन्यथा FALSE। सिंटैक्स interface_exists(name_of_interface, autoload) पैरामीटर्स name_of_interface - इंटरफेस नाम। autoload - डि