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下通过IP获取地理位置的代码(小偷程序)
Jun 09 PHP
php 数据库字段复用的基本原理与示例
Jul 22 PHP
PHP常用技巧总结(附函数代码)
Feb 04 PHP
PHP原生模板引擎 最简单的模板引擎
Apr 25 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
Dec 10 PHP
Zend的MVC机制使用分析(一)
May 02 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
Jun 12 PHP
PHP实现的多彩标签效果代码分享
Aug 21 PHP
php跨站攻击实例分析
Oct 28 PHP
微信公众号判断用户是否已关注php代码解析
Jun 24 PHP
PHP实现权限管理功能示例
Sep 22 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 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
对盗链说再见...
2006/10/09 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
ECMAScript6中Map/WeakMap详解
2015/06/12 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
Python中set与frozenset方法和区别详解
2016/05/23 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
浅谈django orm 优化
2018/08/18 Python
python中cPickle类使用方法详解
2018/08/27 Python
pywinauto自动化操作记事本
2019/08/26 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
python re模块匹配贪婪和非贪婪模式详解
2020/02/11 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
JAVA和C++的区别
2013/10/06 面试题
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
教师档案管理制度
2014/01/23 职场文书
高中数学教学反思
2014/01/30 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang