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 相关文章推荐
一个很方便的 XML 类!!原创的噢
Oct 09 PHP
使用网络地址转换实现多服务器负载均衡
Oct 09 PHP
global.php
Dec 09 PHP
php+mysql写的简单留言本实例代码
Jul 25 PHP
PHP 柱状图实现代码
Dec 04 PHP
利用php+mysql来做一个功能强大的在线计算器
Oct 12 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
php生成扇形比例图实例
Nov 06 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
一个PHP实现的轻量级简单爬虫
Jul 08 PHP
PHP静态成员变量
Feb 14 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
符合标准的js表单提交的代码
2007/09/13 Javascript
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
[47:08]OG vs INfamous 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python采集百度搜索结果带有特定URL的链接代码实例
2019/08/30 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
python爬取代理ip的示例
2020/12/18 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
大学生毕业自荐信
2013/10/10 职场文书
创业计划书的内容步骤和要领
2014/01/04 职场文书
施工协议书范本
2014/04/22 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
2014年残联工作总结
2014/11/21 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
奠基仪式致辞
2015/07/30 职场文书
运动会广播稿100字
2015/08/19 职场文书
详解Python内置模块Collections
2022/03/22 Python
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS