求解PHP迭代器.100分送上 本帖最后由 liebezero 于 2010-04-04 15:31:53 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我谷歌一下.意外发现点资料.iterator接口是内置的.而且foreach时候.如果是对象.会调用iterator接口.我还是不明白.函数怎么被调用了.返回值返回到哪里去了?我很疑惑 你发现的没错,对于foreach来说,遇到实现了Iterator接口的类的对象的遍历,则使用Iterator接口的相关函数来进行foreach.如果是数组,则按熟知的常规来foreach。查了下,Iterator接口的对象就是ZEND_ITER_OBJECT类。其他的是ZEND_ITER_PLAIN_OBJECT类。请参考:http://www.laruence.com/2008/10/31/574.html 执行顺序:__constructrewindcurrentvalidcurrentkey0=>1nextcurrentvalidcurrentkey1=>2nextcurrentvalidcurrentkey2=>3nextcurrentvalid 请将函数中的$val换成任何一种合法变量名即可回答此问题 大概明白了.谢谢.C++的迭代器对我影响比较大.而且PHP真的很随意我感觉.随意意味着自由.自由也以为的风险 关于第三个问题,呵呵 的确是因为php里没有声明变量这个步骤。放在c++或java里 那样在函数里用的话 肯定是要先声明的 呵呵 关于PHP函数ob_get_contents超时的问题 请教:discuz产品Ucenter用户集成Windows域用户问题 addJavaScript()问题 如何把Linux平台下的php网站移植到windows平台下 ecshop 中的{insert name='cart_info'} 关于smarty 招全职php编程人员 一个没有希望解决的问题 如何在数据库中建一个表,当用户登录后写入该表,退出后自动删除该用户记录?? 关于地址栏的显示问题 php的安装问题!!!! 调试php的Xdebug配置不对,网上找了一些方法,可就是无法正常工作! 一个正则表达试的问题
我还是不明白.函数怎么被调用了.返回值返回到哪里去了?我很疑惑
对于foreach来说,遇到实现了Iterator接口的类的对象的遍历,则使用Iterator接口的相关函数来进行foreach.
如果是数组,则按熟知的常规来foreach。
查了下,Iterator接口的对象就是ZEND_ITER_OBJECT类。其他的是ZEND_ITER_PLAIN_OBJECT类。请参考:http://www.laruence.com/2008/10/31/574.html
__construct
rewind
current
valid
current
key
0=>1
next
current
valid
current
key
1=>2
next
current
valid
current
key
2=>3
next
current
valid
放在c++或java里 那样在函数里用的话 肯定是要先声明的 呵呵