php foreach 参数强制类型转换的问题


Posted in PHP onDecember 10, 2010

所以,为了防止这样的信息出现,我使用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接口的类的情况给忽略了。以后一定会注意。
依次为记。

PHP 相关文章推荐
PHP实现多服务器session共享之NFS共享的方法
Mar 16 PHP
简单的PHP留言本实例代码
May 09 PHP
PHP 第二节 数据类型之转换
Apr 28 PHP
php笔记之:数据类型与常量的使用分析
May 14 PHP
php中time()和mktime()方法的区别
Sep 28 PHP
php文件上传的简单实例
Oct 19 PHP
PHP常见数组函数用法小结
Mar 21 PHP
PHP正则表达式入门教程(推荐)
May 18 PHP
php 自定义错误日志实例详解
Nov 12 PHP
PHP编程求最大公约数与最小公倍数的方法示例
May 29 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
php-fpm服务启动脚本的方法
Apr 27 PHP
snoopy 强大的PHP采集类使用实例代码
Dec 09 #PHP
PHPwind整合最土系统用户同步登录实现方法
Dec 08 #PHP
php iconv() : Detected an illegal character in input string
Dec 05 #PHP
php printf输出格式使用说明
Dec 05 #PHP
PHP执行zip与rar解压缩方法实现代码
Dec 05 #PHP
smarty模板嵌套之include与fetch性能测试
Dec 05 #PHP
php 学习资料零碎东西
Dec 04 #PHP
You might like
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
js如何实现设计模式中的模板方法
2013/07/23 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
浅析python实现动态规划背包问题
2020/12/31 Python
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
车辆维修工自我评价怎么写
2013/09/20 职场文书
运动会广播稿500字
2014/01/28 职场文书
培训主管的职业生涯规划
2014/03/06 职场文书
市政工程技术专业自荐书
2014/07/06 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
2016年推广普通话宣传周活动总结
2016/04/06 职场文书
MySQL查看表和清空表的常用命令总结
2021/05/26 MySQL
MySQL 四种连接和多表查询详解
2021/07/16 MySQL