3

曜日に基づいて呼び出す変数を関数に伝えたい。曜日は$s_dayに格納され、呼び出したい変数は曜日に基づいて変化します。

例えば

文字列「Welcometotheweek」を$d_monday_text1に保存しました。7つの条件ステートメントのセットを作成するのではなく(たとえば、date = monday echo $ fooの場合、そうでない場合はdate = Tuesday echo $ bar ...)、関数で呼び出される変数の名前を連結して変更できますか?変数?

$s_day = date("l");
$text1 = '$d_'.$s_day.'_text1';

これが$d_monday_text1に評価されることを期待しています。これは、前述のように、「Welcometotheweek」という値を持ちます。だから、後で私は使用したいと思います:

echo $text1;

結果の出力を生成するには=今週へようこそ。

私は変数変数を調べました。これはここに行く方法かもしれませんが、構文に苦労しています。連結された名前をエコーさせることはできますが、その名前を評価する方法がわかりません。

4

3 に答える 3

9

変数変数は良い考えではありません-むしろ配列を使用する必要があります。彼らはこの問題にはるかによく適合します。

たとえば、次のようなものを使用できます。

$messages = array(
    'monday' => 'Welcome to the week',
    'tuesday' => 'Blah blah',
    'wednesday' => 'wed',
    'thursday' => 'thu',
    'friday' => 'fri',
    'saturday' => 'sat',
    'sunday' => 'week is over!'
);

$dayName = date('l');
echo $messages[$dayName];

配列はこれらのような複数の関連する値を格納するために使用されるデータ形式です。

于 2009-11-30T05:10:00.177 に答える
3

次の構文を使用できます。

$$ text1

私は以前これを使用しました。評価は次のようになります。

$($ text1)

于 2009-11-30T05:05:09.157 に答える
0

次の例を考えてみましょう。

$construction_no = 5;
$construction_5 = 'Door';

$var_name = 'construction_'.$construction_no;
$var_value = ${$var_name};
echo $var_value; //Door

オブジェクト指向アプローチ

$var_value = $this->{$var_name};
echo $var_value; //Door 
于 2014-07-01T14:21:08.837 に答える