构建基于其他变量值和静态文本的PHP变量名称
我想告诉我的函数根据星期几来调用哪个变量。星期几存储在$ s_day中,我想调用的变量基于哪一天发生变化。构建基于其他变量值和静态文本的PHP变量名称
例如
我在$ 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;
产生结果输出=欢迎来到本周。
我已经看过变量,这可能是去这里的方式,但我正在努力与语法。我可以得到它以回显连接的名称,但我无法弄清楚如何得到该名称评估。
可变变量是不是一个好主意 - 你还是使用数组。他们很适合这个问题,好多了。
例如,你可以使用这样的事情:
$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];
数组是用于存储多个相关值,如这些的数据格式。
感谢贾尼。我认为这将适用于比我小的数据集。它确实适合所给出的例子,这是我在这里做什么的简单解释。 – jkramp 2009-11-30 05:17:06
一般来说,我认为只要有任何大小的数据集,就应该使用数组。对变量使用动态命名通常是一个糟糕的主意,因为它不会给数据提供任何结构,并且使得代码的可读性降低。 – 2009-11-30 05:22:05
好的,让我对它多加一点面试,然后我会更新这个问题,看看是否有更好的方法去使用数组。可能由于我的数据结构的方式,使用动态表达式比使用数组更容易。这并不是说我的数据结构不是有缺陷的。 – jkramp 2009-11-30 05:31:56
你可以使用这个语法:
$$文本1
我以前使用过这一点。评价当属:
$($文本1)
让我们看看下面的例子:
$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
的[?我可以使用PHP中生成的变量名(
可能重复http://stackoverflow.com/ questions/130240/can-i-use-a-generated-variable-name-in-php) – outis 2010-10-01 04:04:15