资讯详情

php中使用Iterator,ArrayAccess和Countable_赵克立博客_技术栈

Iterator

当我们在数据库中读取大量数据时,迭代器通常被用来方便数据管理。classBasketimplementsIterator{

private$fruits=array('apple','banna','pear','orange','watermelon');

private$position=0;

//返回当前元素

publicfunctioncurrent(){

return$this->fruits[$this->position];

}

//返回当前键

publicfunctionkey(){

return$this->position

}

//下移一个元素

publicfunctionnext(){

$this->position;

}

///移动到第一个元素

publicfunctionrewind(){

$this->position=0;

}

///判断后续是否有元素

publicfunctionvalid(){

returnisset($this->fruits[$this->position 1]);

}

}

ArrayAccess

使对象中的数据能够像数组一样访问classobjimplementsArrayAccess{

private$container=array();

publicfunction__construct(){

$this->container=array(

"one"=>1,

"two"=>2,

"three"=>3

);

}

//赋值

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]);

}

//获取键对应的值

publicfunctionoffsetGet($offset){

returnisset($this->container[$offset])?$this->container[$offset]:null;

}

}

$obj=newobj();

var_dump(isset($obj["two"]));

var_dump($obj["two"]);

unset($obj["two"]);

var_dump(isset($obj["two"]));

$obj['two']="Avalue";

var_dump($obj['two']);

echo$obj['two'];

$obj[]='Append1';

$obj[]='Append2';

$obj[]='Append3';

var_dump($obj);

Countable

使对象能够计算属性classBasketimplementsCountable{

private$fruits=array('apple','banna','pear','orange','watermelon');

publicfunctioncount(){

returncount($this->fruits);

}

}

$basket=newBasket();

echocount($basket);

标签: banna变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司