2010年4月18日

[PHP-users 35114] Re:抽象メソッドの引数を可変長にしたい

はじめましてミッキーと申します。

竹山さんのソースを参考にして以下のように書いたところ、
おそらく想定されている動作をしているのではないかと思うのですが、いかがでしょうか。

万が一、派生クラスの process() 定義で引数の個数を指定されたい、
というご要望であったのであれば外れとなります。その際はあしからず。

<?php
abstract class AbstractClass
{
public function execute()
{
$args = func_get_args();
for ($i = 0; $i < 3; $i++)
{
$this->process($args);
}
}

abstract protected function process($args);
}

class ConcreteClassA extends AbstractClass
{
function process($args)
{
list($bar) = $args;

// debug
printf("%s, %s \n", get_class($this), $bar);
}
}

class ConcreteClassB extends AbstractClass
{
function process($args)
{
list($bar, $baz) = $args;

// debug
printf("%s, %s, %s \n", get_class($this), $bar, $baz);
}
}

$objA = new ConcreteClassA;
$objB = new ConcreteClassB;

$objA->execute('hoge');
$objB->execute('hoge','moge');
?>
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2010年4月18日 06:57
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/95171
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。