परिचय
PHP में, 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 की आंतरिक निजी संपत्ति है। कुंजी ऑफसेट के रूप में कार्य करती है। हम ऐरे में किसी आइटम को सेट, रिट्रीव और अनसेट कर सकते हैं। यदि ऑफ़सेट नहीं दिया जाता है, तो इसे एक पूर्णांक के रूप में माना जाता है, हर बार अगली अनुक्रमणिका में वृद्धि होती है।
उदाहरण
<?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 ) )
वर्ग की सरणी संपत्ति एक अनुक्रमित सरणी भी हो सकती है। उस स्थिति में, तत्व का सूचकांक (0 से शुरू) ऑफसेट के रूप में कार्य करता है। ऑफ़सेटसेट को कॉल करते समय (ऑफ़सेट तर्क के बिना 0 विधि, सरणी की अनुक्रमणिका अगले उपलब्ध पूर्णांक तक बढ़ जाती है
उदाहरण
<?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) {
eturn 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] = 'Benguluru';
print_r($obj);
?> आउटपुट
उपरोक्त प्रोग्राम निम्न आउटपुट दिखाता है
bool(true) string(6) "Mumbai" bool(false) string(4) "Pune" myclass Object( [arr:myclass:private] => Array( [1] => Hyderabad [2] => Benguluru [3] => Pune [4] => Chennai [5] => NewDelhi ) )