Dieses Mal erkläre ich Ihnen ausführlich die Verwendung der PHP-Array--Zugriffsschnittstelle ArrayAccess. Welche Vorsichtsmaßnahmen bei der Verwendung der PHP-Array-Zugriffsschnittstelle ArrayAccess gelten Werfen wir einen Blick darauf.
Das Beispiel in diesem Artikel beschreibt die Verwendung der PHP-Array-Zugriffsschnittstelle ArrayAccess. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
PHP ArrayAccess-Schnittstelle wird auch Array-Zugriffsschnittstelle genannt. Die Funktion dieser Schnittstelle besteht darin, die Möglichkeit zu bieten, auf Objekte zuzugreifen, wie auf Arrays.
Die Schnittstellen-Zusammenfassung lautet wie folgt:
ArrayAccess { // 获取一个偏移位置的值 abstract public mixed offsetGet ( mixed $offset ) // 设置一个偏移位置的值 abstract public void offsetSet ( mixed $offset , mixed $value ) // 检查一个偏移位置是否存在 abstract public boolean offsetExists ( mixed $offset ) // 复位一个偏移位置的值 abstract public void offsetUnset ( mixed $offset ) }
Beispiel:
<?php /** * ArrayAndObjectAccess * 该类允许以数组或对象的方式进行访问 * * @author 疯狂老司机 */ class ArrayAndObjectAccess implements ArrayAccess { /** * 定义一个数组用于保存数据 * * @access private * @var array */ private $data = []; /** * 以对象方式访问数组中的数据 * * @access public * @param string 数组元素键名 */ public function get($key) { return $this->data[$key]; } /** * 以对象方式添加一个数组元素 * * @access public * @param string 数组元素键名 * @param mixed 数组元素值 * @return mixed */ public function set($key,$value) { $this->data[$key] = $value; } /** * 以对象方式判断数组元素是否设置 * * @access public * @param 数组元素键名 * @return boolean */ public function isset($key) { return isset($this->data[$key]); } /** * 以对象方式删除一个数组元素 * * @access public * @param 数组元素键名 */ public function unset($key) { unset($this->data[$key]); } /** * 以数组方式向data数组添加一个元素 * * @access public * @abstracting ArrayAccess * @param string 偏移位置 * @param mixed 元素值 */ public function offsetSet($offset,$value) { if (is_null($offset)) { $this->data[] = $value; } else { $this->data[$offset] = $value; } } /** * 以数组方式获取data数组指定位置元素 * * @access public * @abstracting ArrayAccess * @param 偏移位置 * @return mixed */ public function offsetGet($offset) { return $this->offsetExists($offset) ? $this->data[$offset] : null; } /** * 以数组方式判断偏移位置元素是否设置 * * @access public * @abstracting ArrayAccess * @param 偏移位置 * @return boolean */ public function offsetExists($offset) { return isset($this->data[$offset]); } /** * 以数组方式删除data数组指定位置元素 * * @access public * @abstracting ArrayAccess * @param 偏移位置 */ public function offsetUnset($offset) { if ($this->offsetExists($offset)) { unset($this->data[$offset]); } } } $animal = new ArrayAndObjectAccess(); $animal->dog = 'dog'; // 调用ArrayAndObjectAccess::set $animal['pig'] = 'pig'; // 调用ArrayAndObjectAccess::offsetSet var_dump(isset($animal->dog)); // 调用ArrayAndObjectAccess::isset var_dump(isset($animal['pig'])); // 调用ArrayAndObjectAccess::offsetExists var_dump($animal->pig); // 调用ArrayAndObjectAccess::get var_dump($animal['dog']); // 调用ArrayAndObjectAccess::offsetGet unset($animal['dog']); // 调用ArrayAndObjectAccess::offsetUnset unset($animal->pig); // 调用ArrayAndObjectAccess::unset var_dump($animal['pig']); // 调用ArrayAndObjectAccess::offsetGet var_dump($animal->dog); // 调用ArrayAndObjectAccess::get ?>
Die obige Ausgabe:
boolean true boolean true string 'pig' (length=3) string 'dog' (length=3) null null
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Ausführliche Erklärung der Verwendung von Callback-Funktionen in PHP
Wie man binäre Algorithmen in PHP zählt
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Verwendung der PHP-Array-Zugriffsschnittstelle ArrayAccess. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!