最近ものすごく気になるのが、WikipediaのことをWikiと略す人が結構居ることだ。
「今年になって、開発情報をWikiに書き込んで管理してるんですよ」*1と言ったら、どういう訳か相手には、Wikipediaに機密情報を投稿している人だと伝わっている。勝手に人をWikipedianにしないでくれ。
そりゃあオレにも、勝手に略して使っている単語は沢山あると思うが。Wikipedia = Wikiが相手の頭で成立していると、まるで会話が通じないのでちょっと困った。もし略すのが多数派になったら、慣れるしかないのか・・・。
*1 オレが使っているのはTiddlyWikiというファイルベースのWikiだ。
久々にLAMPパッケージで仕事をすることに。PHPにもeach関数というものが存在すると知り、もしやRubyのような要素のイテレーションが出来るのかと思ったけど、マニュアル読んだら全然違った。これは、foreachの別記法みたいなものか。
Iteratorパターンを書くとどうなるかと思ったが、Javaライクになってしまった。
class Collection { var $_list; function Collection() { $this->_list = array(); } function add($obj) { $this->_list[] = $obj; } function get($index) { return $this->_list[$index]; } function size() { return count($this->_list); } function iterator() { return new Iterator($this); } } class Iterator { var $_index; var $_collection; function Iterator($collection) { $this->_index = 0; $this->_collection = $collection; } function hasNext() { if($this->_index < $this->_collection->size()) { return true; } else { return false; } } function next() { $obj = $this->_collection->get($this->_index); $this->_index ++; return $obj; } }
XREAのサーバがPHP4しか使えなかったのだけど、多分PHP5で書いたらインタフェースも使えるし、ますますJavaになってしまうんだろうなぁ。実際に使ってみると、どこかで見た風なコードに。
$melosper1 = new Melosper("雷男"); $melosper2 = new Melosper("雷女"); $audience = new Collection(); $audience->add($melosper1); $audience->add($melosper2); $output = "<dl>\n"; for($it = $audience->iterator(); $it->hasNext();) { $mlspr = $it->next(); $output .= "<dt>お名前</dt>\n"; $output .= "<dd>" . htmlspecialchars($mlspr->getName()) . "</dd>\n"; } print($output . "</dl>\n");
配列を抽象化しないでそのまま使って、内部イテレータのforeachで辿ればいいじゃんという感じもする。
最近のツッコミ
参号館 日記(ariyasacca)