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中变量及部分适用方法
Mar 27 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
php自动获取字符串编码函数mb_detect_encoding
May 31 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
php通过COM类调用组件的实现代码
Jan 11 PHP
逆序二维数组插入一元素的php代码
Jun 08 PHP
php自动加载autoload机制示例分享
Feb 20 PHP
php绘制圆形的方法
Jan 24 PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
Dec 08 PHP
WHOOPS PHP调试库的使用
Sep 29 PHP
php集成开发环境详解
Sep 24 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
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
js中生成map对象的方法
2014/01/09 Javascript
JS实现文档加载完成后执行代码
2015/07/09 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
js实现简单五子棋游戏
2020/05/28 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
linux系统使用python监测系统负载脚本分享
2014/01/15 Python
Python中使用logging模块打印log日志详解
2015/04/05 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
Python extract及contains方法代码实例
2020/09/11 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
英语自荐信常用语句
2013/12/13 职场文书
物业保安员岗位职责制度
2014/01/30 职场文书
司机检讨书
2014/02/13 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
个人四风问题原因分析及整改措施
2014/09/28 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
Python实现天气查询软件
2021/06/07 Python