3

我想告诉我的函数根据星期几调用哪个变量。星期几存储在 $s_day 中,我想调用的变量根据它是哪一天而变化。

例如

我在$d_monday_text1 中存储了一个字符串'Welcome to the week'。与其构建一组 7 个条件语句(例如,如果 date=monday echo $foo,else if date=tuesday echo $bar...),我可以通过连接函数的名称来更改函数中调用的变量的名称吗?多变的?

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

我希望这可以评估为 $d_monday_text1,如上所述,它的值是“欢迎来到本周”。所以,稍后我想使用:

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

您可以使用以下语法:

$$文本1

我以前用过这个。评估如下:

$($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 回答