|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
会MYSQL吗?会,我会把我的信息在数据库里插入删除啦 所以,为了避免如许的信息呈现,我利用foreach的时分,城市把参数停止强迫类型转换,情势以下:
foreach((array)$arr as $key => $value);
如许做一向息事宁人,就在头几天,俄然呈现了成绩。我强迫类型转换今后不克不及正常的挪用object的办法了。
复制代码 代码以下:
<?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();
}
/*
//履行报错的代码 利用了将$ser履行强迫类型转换操作
foreach ((array)$ser as $s) {
$s->show();
}*/
之所以呈现如许的成绩就是,foreach不仅可以遍历数组,还可以遍历完成了Iterator接口的类。
我之前只注重到了数组的情形,把完成了Iterator接口的类的情形给疏忽了。今后必定会注重。
顺次为记。会HTML吗?会,我能编好几个大表格排板的网页啦! |
|