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小偷的核心程序
Apr 09 PHP
PHP 遍历XP文件夹下所有文件
Nov 27 PHP
PHP下判断网址是否有效的代码
Oct 08 PHP
php上传图片到指定位置路径保存到数据库的具体实现
Dec 30 PHP
PHP的preg_match匹配字符串长度问题解决方法
May 03 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
Jul 15 PHP
php计算两个日期相差天数的方法
Mar 14 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
php实现的数字验证码及数字运算验证码
Jul 30 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
Feb 08 PHP
php实现记事本案例
Oct 20 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中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
项目实践之javascript技巧
2007/12/06 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
javascript实现Emrips反质数枚举的示例代码
2017/12/06 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
幼儿园中班评语大全
2014/04/17 职场文书
任命书范本大全
2014/06/06 职场文书
2014年人事科工作总结
2014/11/19 职场文书
怒海潜将观后感
2015/06/11 职场文书
任长霞观后感
2015/06/16 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技