1ArrayAccess(数组式访问)接口
程序员文章站
2022-03-16 22:32:41
...
如果想让对象使用起来像一个PHP数组,那么我们需要实现ArrayAccess接口。
ArrayAccess是一个interface,实现这个interface,必须要实现以下几个方法:
interfaceArrayAccess
{//标示一个元素是否定义publicfunctionoffsetExists($offset);//返回一个元素值publicfunctionoffsetGet($offset);//为一个元素赋值publicfunctionoffsetSet($offset,$value);//删除一个元素值publicfunctionoffsetUnset($offset);
}
实现:
classTestimplementsArrayAccess
{private$elements = array();
//标示一个元素是否定义publicfunctionoffsetExists($offset)
{returnisset($this->elements[$offset]);
}
//返回一个元素值publicfunctionoffsetGet($offset)
{return$this->elements[$offset];
}
//为一个元素赋值publicfunctionoffsetSet($offset,$value)
{$this->elements[$offset] = $value;
}
//删除一个元素值publicfunctionoffsetUnset($offset)
{unset($this->elements[$offset]);
}
}
$test = new Test();
$test['test'] = 'test';//自动调用offsetSetif(isset($test['test']))//自动调用offsetExists
{
echo$test['test'];//自动调用offsetGetecho'
';
unset($test['test']);//自动调用offsetUnset var_dump($test['test']);
}
classobjimplementsArrayAccess
{private$container = array();
publicfunction__construct()
{$this->container = array(
'one' => 1,
'tow' => 2,
'three' => 3,
);
}
publicfunctionoffsetGet($offset)
{returnisset($this->container[$offset]) ? $this->container[$offset] : null;
}
publicfunctionoffsetSet($offset,$value)
{if (is_null($offset)){
$this->container = $value;
}else{
$this->container[$offset] = $value;
}
}
publicfunctionoffsetExists($offset)
{returnisset($this->container[$offset]);
}
publicfunctionoffsetUnset($offset)
{unset($this->container[$offset]);
}
}
$obj = new obj;
var_dump(isset($obj["two"])); // 调用 offsetExists
var_dump($obj["two"]); //调用 offsetGetunset($obj["two"]); //调用 offsetUnset
var_dump(isset($obj["two"]));// 调用 offsetExists$obj["two"] = "A value"; // 调用 offsetSet
var_dump($obj["two"]); //调用 offsetGet$obj[] = 'Append 1';
$obj[] = 'Append 2';
$obj[] = 'Append 3';
print_r($obj);
').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});
以上就介绍了1ArrayAccess(数组式访问)接口,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
推荐阅读
-
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
-
PHP数组式访问接口ArrayAccess用法分析
-
数组式访问-ArrayAccess
-
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
-
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
-
java8新特性lambda表达式、函数式编程、方法引用和接口默认方法以及内部类访问外部变量
-
【Java 20】Java8的其他新特性 - Lambda表达式、函数式接口、方法引用、构造器引用、数组引用、Stream API、Optional类
-
PHP数组式访问接口ArrayAccess用法分析
-
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象_PHP
-
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象_PHP