[PHP-users 6001] PHPデザインパタン

Junichi Kuroki php-users@php.gr.jp
Fri, 08 Mar 2002 14:51:23 +0900


黒木です。

 PHPでデザインパタンの話題等で盛り上がるのは面白いと思うのですが
如何なものでしょうか?

とりあえず色々作ってみました。まずはなんか GoF のパタンと違うっぽい
ですが配列用の Iterator もどきです。このクラスを作ってから for を殆
ど使わなくなりました。結構便利かも(^^;

なにしろ Java と比べてオブジェクト関連の機能が貧弱なので色々試行錯
誤して取り入れてみようとしてるのですがこういう話は色々な人と話をし
てみたら面白いかも。と思った次第です。

<?php

$aData = array( "one", "two", "three" ) ;
$oIt = new Iterator( $aData ) ;
while( $oIt->hasNext() ) echo $oIt->next() ;

class Iterator {
  var $stKeys = array() ;
  var $iIndex = 0 ;
  var $aArray = array() ;
  function Iterator( &$aArray ) {
    if( is_array( $aArray ) ) {
      $this->stKeys = array_keys( $aArray ) ;
      $this->aArray = &$aArray ;
    }
  }
  function hasNext() {
    if( $this->iIndex < count( $this->stKeys ) ) return true ; else return false ;
  }
  function next() {
    if( $this->iIndex < count( $this->stKeys ) ) {
      $stKey = $this->stKeys[ $this->iIndex ] ;
      $this->iIndex++ ;
      return $this->aArray[$stKey] ;
    } else {
      return false ;
    }
  }
}
?>

(: )('')( :)(..)(: )('')( :)(..)(: )('')( :)(..)

  黒木淳一 : kuroki@mycc.co.jp
  P.S.R.C.  http://www.chamise.jp/mera/index.html

(..)( :)('')(: )(..)( :)('')(: )(..)( :)('')(: )