2017-03-12 14 views
0

変数を関数名として実行するコードがあります。PHPの関数名として2つの変数を使用する方法

$id = $_GET["id"]; 
$thing = 'draw_calendar'.$id; 
$$thing = function($month,$year,$per_day_chu){ 
    //code 
} 

echo $draw_calendar1(date("m"), date("Y"), $per_day_chu); 

上記のコードは完全に実行されています。しかし、$id値は動的ではなく一定値です。だから私はいつもecho $draw_calendar1(date("m"), date("Y"), $per_day_chu);のような関数を呼び出すことはできません。

は、私はこれは悪い選択肢である知っているこのecho $draw_calendar.$id(date("m"), date("Y"), $per_day_chu);

のような結果に何かを達成したいです。しかし私には他の選択肢はありません。

結果を得る方法はありますか? 誤ったコーディングを行っているかどうか。 これを終了させて​​ください。誰でも助けてくれますか?ありがとうございました。

+0

'$ draw_calendar。$ id'このコードを使用しますか?上記のコードが役に立つかどうか? –

+0

@MahdiParsa: '$ id'の値は定数値ではなく動的です。 –

答えて

1

そうのようなまあ、あなたが変数にそれを連結することができます:あなたのIDがあなたを呼び出す前に、GETパラメータから入力されているので

$functionName(date("m"), date("Y"), $per_day_chu); 

$functionName = $draw_calendar . $id; 

は、その後、あなたがそうのようにそれを呼び出すことができます関数が存在する場合は、それが存在するかどうかを検証したい場合があります。それ以外の場合はエラーになります。

if (function_exists($functionName)) { 
    $functionName(date("m"), date("Y"), $per_day_chu); 
} 
+0

'$ draw_calendar'となるもの –

+0

エラー'未定義変数:draw_calendar' –

+0

'$ draw_calendar' - これは文字列 'draw_calendar'です。 '$ functionName = 'draw_calendar'を変更すると変更できます。 $ id; ' – DenisOgr

関連する問題