首页 / PHP / 尝试了解php中的Iterator接口
尝试了解php中的Iterator接口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了尝试了解php中的Iterator接口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1231字,纯文字阅读大概需要2分钟。
内容图文
![尝试了解php中的Iterator接口](/upload/InfoBanner/zyjiaocheng/770/2cdd57e39dc34b75a2ed53f91231e1bb.jpg)
我正在阅读http://php.net/manual/en/class.iterator.php,但很难理解Example#1的基本用法.
问题:
> var_dump(__ METHOD__);
我知道你可以在这里使用变量,例如:var_dump($count),但METHOD不是变量,还是全局变量/常量?
>
foreach($it as $key => $value) {
var_dump($key, $value);
echo "\n";
}
如果我改为:
foreach($it as $key => $value) {
}
如果我运行脚本,它仍然可以显示结果,为什么?
> var_dump($key,$value);
结果是
int 0 string ‘firstelement’ (length=12)
int 1 string ‘secondelement’ (length=13)
…
为什么会出现这种结果? foreach($it as $key => $value),$它是对象,它不是$array,所以怎么会发生这种情况?
解决方法:
Iterator接口允许类的行为类似于foreach语句中的数组.
因为它不是一个数组,所以该类必须知道如何在这种情况下表现.这是通过调用(由foreach,为简单起见)来完成从Iterator接口实现的一些方法.由于它是接口要求,所以应该实现所有方法,即使您不打算使用其中一些方法,例如检索密钥.
在这些方法中,您可以键入任何您喜欢的内容,即使是在foreach循环中没有意义的内容(假设您不增加计数器$位置).
在手册中,var_dump()用于显示调用哪些方法. __METHOD__伪常量是一个返回当前方法名称的字符串.您应该删除这些行,因为它们仅用于示例目的.
Iterator接口中的每个方法都是公共的,因此您可以从代码中的任何位置调用它们,但不需要在程序中调用它们.在foreach循环中,它们会被自动调用,这就是你的空循环工作的原因.
内容总结
以上是互联网集市为您收集整理的尝试了解php中的Iterator接口全部内容,希望文章能够帮你解决尝试了解php中的Iterator接口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。