ユーザ関数を定義して色々処理しているのですが、
$count = 1;
while ($count < 4) {
$list = orekansuu1($list);
$count++;
}
orekansuu1を$countのカウントと連動させて
orekansuu2
orekansuu3
とあげて処理をしたいのですが、いかがしたら良いでしょう?
先輩方のご意見お伺いしたいです。
PHP には、可変関数という機能があります。
PHP: 可変関数 - Manual
それを使うと、こんな感じに書けます。
<?php $count = 1; while ($count < 4) { // 関数名を、文字列として変数に代入 $func_name = "orekansuu" . $count; // 関数名を持った変数に、括弧と引数をつけると呼び出すことができる $list = $func_name($list); $count++; } ?>
switch (($count) { case 1: $list = orekansuu1($list); break; case 2: $list = orekansuu2($list); break; case 3: $list = orekansuu3($list); break; }
上記みたいに 値によって実行するものを変えたらいいですね。
orekansuu中で 処理を工夫したほうがいいと思います。
orekansuuはXMLやHTMLをリライトするものなのです。リライト後は統一されたデータを生成してDBにぶち込みます、DBにぶち込む部分や評価の数式は統一なので親のPHPに書けばいいかなぁと、、、
ですので、処理するXMLやHTMLによってorekansuuの内容は違い、バラバラに外部ファイルにして、順番に外部ファイルを読み込み、処理出来たらキレイだな~と思って一つのPHPにまとめて一撃で処理させよう!と思ったのがの事の発端なんです。
連続させて処理するとorekansuuがかぶり、『Fatal error: Cannot redeclare』エラーが出てしまいます。それでorekansuuに番号を振って回避させたのですが解決策があればいいかなとネットサーフィン。
分からず、、、って感じです
PHP には、可変関数という機能があります。
PHP: 可変関数 - Manual
それを使うと、こんな感じに書けます。
<?php $count = 1; while ($count < 4) { // 関数名を、文字列として変数に代入 $func_name = "orekansuu" . $count; // 関数名を持った変数に、括弧と引数をつけると呼び出すことができる $list = $func_name($list); $count++; } ?>
回答ありがとうございます。
$list = "orekansuu".$count($list);
で作った当初やってエラーだった無理なのかとおもったら、
$func_name = "orekansuu" . $count;
$list = $func_name($list);
と先に代入するのですか!
勉強になりました。
回答ありがとうございます。
2015/04/07 11:58:02$list = "orekansuu".$count($list);
で作った当初やってエラーだった無理なのかとおもったら、
$func_name = "orekansuu" . $count;
$list = $func_name($list);
と先に代入するのですか!
勉強になりました。