人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPを勉強中の者です。
ユーザ関数を定義して色々処理しているのですが、

$count = 1;
while ($count < 4) {

$list = orekansuu1($list);

$count++;
}

orekansuu1を$countのカウントと連動させて
orekansuu2
orekansuu3
とあげて処理をしたいのですが、いかがしたら良いでしょう?
先輩方のご意見お伺いしたいです。

●質問者: admn
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●20ポイント
switch (($count) {
 case 1:
 $list = orekansuu1($list);
 break;
 case 2:
 $list = orekansuu2($list);
 break;
 case 3:
 $list = orekansuu3($list);
 break;
}

上記みたいに 値によって実行するものを変えたらいいですね。


admnさんのコメント
早速の回答ありがとうございます。 switchですか!わかりましたが、、、、 実はorekansuuは50個くらいあるんです! ですので、$countの数をorekansuuに直接結びつける感じで処理したいのですが、適切な書き方が分からないのです。 pls help me!!

きゃづみぃさんのコメント
50個もあるんですか。 それぞれ何が違うんでしょうか?

きゃづみぃさんのコメント
orekansuu中で 処理を工夫したほうがいいと思います。

admnさんのコメント
orekansuuはXMLやHTMLをリライトするものなのです。リライト後は統一されたデータを生成してDBにぶち込みます、DBにぶち込む部分や評価の数式は統一なので親のPHPに書けばいいかなぁと、、、 ですので、処理するXMLやHTMLによってorekansuuの内容は違い、バラバラに外部ファイルにして、順番に外部ファイルを読み込み、処理出来たらキレイだな~と思って一つのPHPにまとめて一撃で処理させよう!と思ったのがの事の発端なんです。 連続させて処理するとorekansuuがかぶり、『Fatal error: Cannot redeclare』エラーが出てしまいます。それでorekansuuに番号を振って回避させたのですが解決策があればいいかなとネットサーフィン。 分からず、、、って感じです

2 ● a-kuma3
●80ポイント ベストアンサー

PHP には、可変関数という機能があります。
PHP: 可変関数 - Manual

それを使うと、こんな感じに書けます。

<?php

$count = 1;
while ($count < 4) {

 // 関数名を、文字列として変数に代入
 $func_name = "orekansuu" . $count;

 // 関数名を持った変数に、括弧と引数をつけると呼び出すことができる
 $list = $func_name($list);

 $count++;
}

?>

http://ideone.com/whvPsU


admnさんのコメント
回答ありがとうございます。 $list = "orekansuu".$count($list); で作った当初やってエラーだった無理なのかとおもったら、 $func_name = "orekansuu" . $count; $list = $func_name($list); と先に代入するのですか! 勉強になりました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ