仓酷云
标题:
PHP教程之PHP设计形式之迭代器形式
[打印本页]
作者:
蒙在股里
时间:
2015-2-3 23:34
标题:
PHP教程之PHP设计形式之迭代器形式
完成一个功能齐全的动态站点 迭代器:迭代器设计形式可匡助机关特定对象, 那些对象可以供应单一尺度接口轮回或迭代任何类型的可计数数据。
处置需求遍历的可计数数据时, 最好的处理举措是创立一个基于迭代器设计形式的对象。
<?php class CD { public $band = ""; public $title = ""; public $trackList = array(); public function __construct($band, $title) { $this->band = $band; $this->title = $title; } public function addTrack($track) { $this->trackList[] = $track; } } class CDSearchByBandIterator implements Iterator { private $_CDs = array(); private $_valid = FALSE; public function __construct($bandName) { $db = mysql_connect("localhost", "root", "root"); mysql_select_db("test"); $sql = "select CD.id, CD.band, CD.title, tracks.tracknum, tracks.title as tracktitle "; $sql .= "from CD left join tracks on CD.id = tracks.cid "; $sql .= "where band = '" . mysql_real_escape_string($bandName) . "' "; $sql .= "order by tracks.tracknum"; $results = mysql_query($sql); $cdID = 0; $cd = NULL; while ($result = mysql_fetch_array($results)) { if ($result["id"] !== $cdID) { if ( ! is_null($cd)) { $this->_CDs[] = $cd; } $cdID = $result['id']; $cd = new CD($result['band'], $result['title']); } $cd->addTrack($result['tracktitle']); } $this->_CDs[] = $cd; } public function next() { $this->_valid = (next($this->_CDs) === FALSE) ? FALSE : TRUE; } public function rewind() { $this->_valid = (reset($this->_CDs) === FALSE) ? FALSE : TRUE; } public function valid() { return $this->_valid; } public function current() { return current($this->_CDs); } public function key() { return key($this->_CDs); } } $queryItem = "Never Again"; $cds = new CDSearchByBandIterator($queryItem); print "<h1>Found the Following CDs</h1>"; print "<table border='1'><tr><th>Band</th><th>Ttile</th><th>Num Tracks</th></tr>"; foreach ($cds as $cd) { print "<tr><td>{$cd->band}</td><td>{$cd->title}</td><td>"; print count($cd->trackList). "</td></tr>"; } print "</table>"; ?>
复制代码
数据库剧本请参照:http://www.cxybl.com/html/wlbc/Php/2011_1126_9458.html
在相册系统的开发上,因为采用的是团队分工合作方式,更让我明白了在一个团队之中,团队成员之间的交流沟通的重要性,如果没有很好的沟通交流,成员之间的任务没有分配好。
作者:
冷月葬花魂
时间:
2015-2-4 02:28
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
作者:
谁可相欹
时间:
2015-2-6 16:21
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者:
再见西城
时间:
2015-2-12 07:01
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者:
若天明
时间:
2015-2-14 23:49
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者:
爱飞
时间:
2015-2-25 19:51
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线 \\\\\\\'_\\\\\\\' ;
作者:
活着的死人
时间:
2015-3-8 02:02
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者:
莫相离
时间:
2015-3-8 12:01
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
作者:
柔情似水
时间:
2015-3-15 22:27
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者:
精灵巫婆
时间:
2015-3-17 18:08
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
作者:
分手快乐
时间:
2015-3-20 15:47
实践是检验自己会不会的真理。
作者:
蒙在股里
时间:
2015-4-10 13:17
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
作者:
深爱那片海
时间:
2015-4-14 11:26
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者:
飘灵儿
时间:
2015-4-21 22:13
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
作者:
小妖女
时间:
2015-4-22 05:00
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
作者:
愤怒的大鸟
时间:
2015-4-22 10:15
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者:
海妖
时间:
2015-4-26 06:10
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者:
简单生活
时间:
2015-5-10 01:27
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者:
仓酷云
时间:
2015-7-1 22:23
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者:
只想知道
时间:
2015-7-7 18:56
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
作者:
小魔女
时间:
2015-7-10 21:30
Ps:以上纯属原创,如有雷同,纯属巧合
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2