Fatal error: Cannot redeclare class iterator in E:\WEB\exp\class\static.php on line 4
下面是代码
<?
interface iterator{
function current();
function key();
function next();
function valid();
function rewind();
}class datahandler implements iterator{
private function __construct($arr){
if(is_array($arr)){
$this->array=$arr;
}
} public function current(){
return current($this->array);
}
public function key(){
return key($this->array);
}
public function next(){
return key($this->array);
}
public function valid(){
return $this->current() !== false;
}
public function rewind(){
reset($this->array);
}
}$new_array = array("a","b","c","d","e");
$object=new datahandler($new_array);
echo "iterating over the object:<br>";
foreach ($object as $key => $value){
echo $key."=>".$value."<br>";
}
?>
下面是代码
<?
interface iterator{
function current();
function key();
function next();
function valid();
function rewind();
}class datahandler implements iterator{
private function __construct($arr){
if(is_array($arr)){
$this->array=$arr;
}
} public function current(){
return current($this->array);
}
public function key(){
return key($this->array);
}
public function next(){
return key($this->array);
}
public function valid(){
return $this->current() !== false;
}
public function rewind(){
reset($this->array);
}
}$new_array = array("a","b","c","d","e");
$object=new datahandler($new_array);
echo "iterating over the object:<br>";
foreach ($object as $key => $value){
echo $key."=>".$value."<br>";
}
?>
解决方案 »
- 菜鸟提问,PHP采集图片保存本地入库该怎么写啊?
- mysql的内存表性能怎么样,在线等
- php直接打印问题(不弹出选择打印机的对话框)
- ■■■跪求一本完整的PHP正则表达式在线教程或书
- php求正则表达式
- php如何写一个函数取得客户端的时间?php已经有函数$_SERVER['REMOTE_ADDR']取得正在浏览当前页面用户的 IP 地址,那么哪个函数又是取得
- 调用dll问题
- 当form不在循环以内,如何通过这个form一次性提交循环以内的所有input的值,
- 如何实现非法字符的检查
- 我的操作系统是win2000server,但是我没有用IIS的!我用的apache……
- 有熟悉事务或PDO的吗?老是回滚,删除不掉数据
- PHP数组的分解与赋值
没有错误了
但是数组的ABCDE输不出来
是不是哪里有问题?
只输出了这个
iterating over the object:
interface iterator1{
function current();
function key();
function next();
function valid();
function rewind();
}class datahandler implements iterator1{
private $array=array();
public function _construct($arr){
if(is_array($arr)){
$this->array=$arr;
}
}
public function current(){
return current($this->array);
}
public function key(){
return key($this->array);
}
public function next(){
return key($this->array);
}
public function valid(){
return $this->current() !== false;
}
public function rewind(){
reset($this->array);
}
}$new_array = array("a","b","c","d","e");
$object=new datahandler($new_array);
echo "iterating over the object:<br>";
foreach ($object as $key => $value){
echo $key."=>".$value."<br>";
}
你的类中只有一个属性rivate $array=array();
还是个空的,你想输出什么啊?
还有构造函数中$this已经不是纯当前类本身了
if(is_array($arr)){
$this->array=$arr;
}
还有
foreach ($object as $key => $value){
echo $key."=>".$value."<br>";
}其中$object是个对象.你怎么能用foreach去循环呢?
在你的构造函数中给array赋值,并没有返回值。你在这块可以写$arr = $object->array;不过你的类中的array得改成public.不然私有成员是在外面访问不了的.或者使用__get()方法获取。
private $array=array();
这句我屏蔽了
把你上面的放上去了,
/private $array=array();
public function __construct($arr){
if(is_array($arr)){
$this->array=$arr;
}
}
打印出来是这个啊,
iterating over the object:
array=>Array
里面的没有出来
能在看看吗?
$new_array = array("a","b","c","d","e");
$object=new datahandler($new_array);
$arr = $object->array;
echo "iterating over the object:<br>";
foreach ($arr as $key => $value){
echo $key."=>".$value."<br>";
}
出来了
谢谢大家