• ベストアンサー

http://○○○?=p***とするには?

main.phpというファイルがあるとして、 このファイル内で、subという名でfunctionを書き、 『 function sub(){ *** } ↑こんな感じ 』 これを main.php?p=sub でページを表示させるには、どのようなプログラムを書けば良いのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

No2さんの回答通りで良いかと思いますが、危険な仕様ですね。実行する関数の名前を外部から与えるのであれば、入力チェックをちゃんとしないと「任意の関数を外部から実行できる」なんて事になってしまいます。入力チェックをするとなるとそれなりに手間も掛かります。そもそもそのような処理が必要な全体の構造に問題があるような気がしますよ。 単に外からのパラメータの値で処理を変えるなら、動作モード別に数値などを割り当てて、No1さんのようにif文やswitch文で処理を分岐させるのがノーマルな作り方だと思います。

noname#46009
質問者

お礼

親切にどうも有難うございました。 自分でいろいろと研究してみようと思います。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

call_user_func等の関数を使えば可能です。 --main.php---- call_user_func($_GET['p']); function sub(){ *** }

参考URL:
http://www.php.net/manual/ja/ref.funchand.php
noname#46009
質問者

お礼

参考にさせていただきますね。 有難うございました。

すると、全ての回答が全文表示されます。
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

if ($_GET['p'] == 'sub') { sub(); } 最低限の用件は満たしました。

noname#46009
質問者

お礼

有難うございました。

noname#46009
質問者

補足

さっそくお答えいただいて有難うございます。 あと教えていただいたものはswitchでも出来ますか?

すると、全ての回答が全文表示されます。

関連するQ&A