我想告诉我的函数根据星期几来调用哪个变量。一周中的某一天存储在$ s_day中,我想要调用的变量根据它所在的日期而变化。
e.g。
我在$ d_monday_text1中存储了一个字符串'Welcome to the week'。而不是构建一组7个条件语句(例如,如果date = monday echo $ foo,否则如果date = tuesday echo $ bar ...),我可以通过连接名称来更改函数中调用的变量的名称吗?变量?
$s_day = date("l");
$text1 = '$d_'.$s_day.'_text1';
我希望这个评估为$ d_monday_text1,如上所述,它的值为“欢迎来到一周”。所以,稍后我想使用:
echo $text1;
产生结果输出=欢迎来到一周。
我已经研究过变量变量,这可能是这里的方法,但我正在努力学习语法。我可以得到它来回应连接的名称,但我无法弄清楚如何评估该名称。
答案 0 :(得分: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];
数组是 数据格式,用于存储多个相关值,例如这些。
答案 1 :(得分:3)
您可以使用以下语法:
$$ text1
我之前用过这个。评估结果如下:$($文本1)
答案 2 :(得分: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