仓酷云

标题: PHP教程之PHP设计形式之迭代器形式 [打印本页]

作者: 蒙在股里    时间: 2015-2-3 23:34
标题: PHP教程之PHP设计形式之迭代器形式
完成一个功能齐全的动态站点   迭代器:迭代器设计形式可匡助机关特定对象, 那些对象可以供应单一尺度接口轮回或迭代任何类型的可计数数据。
处置需求遍历的可计数数据时, 最好的处理举措是创立一个基于迭代器设计形式的对象。
  1. <?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