[PHP-users 20312]Re: クラスとは。コンストラクタとは。メンバ変数宣言とは。

UNO Shintaro uno @ venus.dti.ne.jp
2004年 2月 8日 (日) 19:27:46 JST


>例では、処理したい「変数を2回繰り返す」というものは
>どちらも同じように達成できているわけですし。

その例は、オブジェクト指向らしい使い方とは程遠いのです。
オブジェクト指向の考え方がうまくつかめなくてモヤモヤ感
いっぱいという感じなんだろうなーと思います。
「オブジェクト脳の作り方」とか読んで例題をやってみると
いいかも。

クラス、コンストラクタ、メンバ変数の使い方の簡単な例を
書いてみます。理解のきっかけになるといいのですが。

<?php
class Repeater {
  var $repeatCount;
  function Repeater($repeatCount){
    $this->repeatCount = $repeatCount;
  }
  function getConvertedString($v){
    $result='';
    for($i=0;$i<$repeatCount;$i++){
      $result.="[$v]";
    }
    return $result;
  }
}

class Greeter {
  var $greet;
  function Greeter($greet){
    $this->greet = $greet;
  }
  function getConvertedString($v){
    return $this->greet . ', ' . $v . '!';
  }
}

$a = array();
$a[] =& new Repater(2);
$a[] =& new Greeter("Hello");
$a[] =& new Repater(3);
$a[] =& new Greeter("Good morning");

$b = array('aaa','bbb','ccc');

foreach($b as $string){
  foreach($a as $object){
    print $object->getConvertedString($string) . "\n";
  }
}
?>

-- 
UNO Shintaro, 宇野 信太郎
mailto:uno @ venus.dti.ne.jp
http://www.venus.dti.ne.jp/~uno/


PHP-users メーリングリストの案内