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 相关文章推荐
在IIS上安装PHP4.0正式版
Oct 09 PHP
PHP语法速查表
Jan 02 PHP
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
May 10 PHP
使用PHP实现二分查找算法代码分享
Jun 24 PHP
header导出Excel应用示例
Jan 24 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
php接口数据加密、解密、验证签名
Mar 12 PHP
WAMP环境中扩展oracle函数库(oci)
Jun 26 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 PHP
在IIS下安装PHP扩展的方法(超简单)
Apr 10 PHP
PHP设计模式之原型模式定义与用法详解
Apr 03 PHP
Laravel5.1 框架表单验证操作实例详解
Jan 07 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下通过POST还是GET来传值
2008/06/05 PHP
php二维数组转成字符串示例
2014/02/17 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
js如何取消事件冒泡
2013/09/23 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
vue ssr+koa2构建服务端渲染的示例代码
2020/03/23 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
wxPython的安装与使用教程
2018/08/31 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
Python List cmp()知识点总结
2019/02/18 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
python调用私有属性的方法总结
2020/07/24 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
自荐书封面下载
2013/11/29 职场文书
数控技校生自我鉴定
2014/03/02 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
党员争先创优承诺书
2015/01/20 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
可怜妈妈观后感
2015/06/09 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
小学毕业教师寄语
2019/06/21 职场文书
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
2021/05/06 MySQL
如何判断pytorch是否支持GPU加速
2021/06/01 Python
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL
MySQL添加索引特点及优化问题
2022/07/23 MySQL