最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php foreach 參數(shù)強(qiáng)制類型轉(zhuǎn)換的問題

 更新時(shí)間:2010年12月10日 14:53:30   作者:  
大家都知道foreach的參數(shù)如果不是數(shù)組類型,在運(yùn)行的時(shí)候 就會(huì)出現(xiàn)類似“Warning: Invalid argument supplied for foreach() in XXX”warning信息。
所以,為了防止這樣的信息出現(xiàn),我使用foreach的時(shí)候,都會(huì)把參數(shù)進(jìn)行強(qiáng)制類型轉(zhuǎn)換,形勢如下:
foreach((array)$arr as $key => $value);
這樣做一直相安無事,就在前幾天,突然出現(xiàn)了問題。我強(qiáng)制類型轉(zhuǎn)換以后不能正常的調(diào)用object的方法了。
復(fù)制代碼 代碼如下:

<?php
class service implements Iterator{
function __construct($service_define,$filter=null){
$this->iterator = new ArrayIterator($service_define['list']);
$this->filter = $filter;
$this->valid();
}
function current(){
return $this->current_object;
}
public function rewind() {
$this->iterator->rewind();
}
public function key() {
return $this->iterator->current();
}
public function next() {
return $this->iterator->next();
}
public function valid() {
while($this->iterator->valid()){
if($this->filter()){
return true;
}else{
$this->iterator->next();
}
};
return false;
}
private function filter(){
$current = $this->iterator->current();
if($current){
$this->current_object = new Sameple($current);
if($this->current_object){
return true;
}
}
return false;
}
}
class Sameple{
var $class_name;
function __construct($class_name = null) {
$this->class_name = $class_name;
}
function show(){
echo $this->class_name,'<br />';
}
}
$servicelist = array(
'list' => array(
'first',
'second',
'third',
'fourth',
),
);
$ser = new service($servicelist);
foreach ($ser as $s) {
$s->show();
}
/*
//執(zhí)行報(bào)錯(cuò)的代碼 使用了將$ser執(zhí)行強(qiáng)制類型轉(zhuǎn)換操作
foreach ((array)$ser as $s) {
$s->show();
}*/

之所以出現(xiàn)這樣的問題就是,foreach不但可以遍歷數(shù)組,還可以遍歷實(shí)現(xiàn)了Iterator接口的類。

我以前只注意到了數(shù)組的情況,把實(shí)現(xiàn)了Iterator接口的類的情況給忽略了。以后一定會(huì)注意。
依次為記。

相關(guān)文章

最新評(píng)論

油尖旺区| 丽水市| 合肥市| 锡林郭勒盟| 成武县| 土默特右旗| 金华市| 县级市| 平舆县| 万山特区| 陆丰市| 龙岩市| 都兰县| 开阳县| 富源县| 鄂尔多斯市| 屏东市| 东明县| 临沂市| 竹山县| 台前县| 龙口市| 怀远县| 如东县| 武强县| 晋州市| 曲阳县| 阿瓦提县| 乌拉特前旗| 襄汾县| 喀喇| 正宁县| 玛曲县| 什邡市| 邵武市| 长春市| 镇远县| 新乡市| 永清县| 壤塘县| 岳阳市|