こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

クラスの使い方

php5です。

--- test1.class.php ---
class TEST1 {
function hoge1() {
// 実際に複雑な処理ですが概要として簡易化してます
$aaa = 'hoge1';
// クラスの実行で単純に戻り値を返す
return $aaa;
}
}

--- test2.class.php ---
class TEST2 {
function hoge2() {
// 実際に複雑な処理ですが概要として簡易化してます
$bbb = 'hoge2';
// クラスの実行で単純に戻り値を返す
return $bbb;
}
}

--- MySmarty.class.php ---
require_once 'test1.class.php';
require_once 'test2.class.php';

class MySmarty extends Smarty {
function MySmarty() {
//ここでclassTEST1,2の戻り値を利用しif文で分岐をしたい
if ($aaa == 'hoge1') {
$ccc = 'あああ';
} elee {
$ccc = 'いいい';
}
if ($bbb == 'hoge2') {
$ddd = 'ううう';
} elee {
$ddd = 'えええ';
}
$this->assign('aaa', $aaa);
$this->assign('bbb', $bbb);
・・・
}
}

このような使い方はできないものでしょうか?クラスに触れてまだ間も無く理解も深めれて
いない状態で参考サイトなどを調べてみたのですがこのような使い方を書いている説明は
みつかりませんでした。

思いつく方法としてはMySmartyに継承すればいいようなのですが継承は1つまでと
制限があるようでそれもできない状態です。

単純に1つのクラスにまとめて書けば済むような気もあるのですが他にも別のクラスの
戻り値を利用して分岐等をさせたく思っているのですがこの場合どうすればいいのでしょうか?

もし不可能な場合(可能だけど方法的に良くない場合)の別の方法としてアドバイスを
頂けますと幸いです!宜しくお願いします!

投稿日時 - 2009-05-02 22:05:13

QNo.4926552

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

役に立つかどうか分かりませんが、質問に対する直接の
意見ではなく、質問の仕方に対する意見です。

まず、クラスを実行、という発想がクラスの概念を取り
損ねているように思います。内容的にはクラス化するレ
ベルではなくて、ただ単に関数というレベルです。

クラスは定義するもの、実行はメンバ関数です。

クラスの概念を説明しようと思ったら、薄い本一冊くら
いになってしまうので、勉強してくださいとしか言えま
せん。

外見的に言えることは、関数1つのクラスは、クラスと
しての意味が無い、ということです。

それから、eleeというのはありません。
プログラミングする場合、細部にも気を回しましょう。

投稿日時 - 2009-05-03 00:33:52

お礼

お返事ありがとうございます。
eleeは完全にタイプミスでした。今後気をつけます^^;

>クラスは定義するもの、実行はメンバ関数です。
classの中のfunctionで実行という事ですね!1つ勉強になりました^^

>関数1つのクラスは、クラスとしての意味が無い
実際には複数のメンバ関数があり簡略化しています。最終的に値を出すのがこんな感じと
いう意味です。情報不足でした。

引き続き回答をお待ちしております!

投稿日時 - 2009-05-03 01:02:26

あなたにオススメの質問