পরিচয়
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 ) )