当我不知道要显示哪些变量时,PHP回显变量

当我不知道要显示哪些变量时,PHP回显变量,php,string,variables,Php,String,Variables,我有日历。用户选择他/她想要阻止的日期。在数据库中,它们以假日名称保存为数组: a:3:{i:0;s:6:"easter";i:1;s:12:"thanksgiving";i:2;s:9:"christmas";} 在一个文件中,我有每个文件的日期字符串: $thanksgiving = " [11, 27, 2014], [11, 26, 2015], [11, 24, 2016], [11, 23, 2017], [11, 22, 2018], [11, 28, 2019], [11, 2

我有日历。用户选择他/她想要阻止的日期。在数据库中,它们以假日名称保存为数组:

a:3:{i:0;s:6:"easter";i:1;s:12:"thanksgiving";i:2;s:9:"christmas";}
在一个文件中,我有每个文件的日期字符串:

$thanksgiving = "
[11, 27, 2014],
[11, 26, 2015],
[11, 24, 2016],
[11, 23, 2017],
[11, 22, 2018],
[11, 28, 2019],
[11, 26, 2020],
[11, 25, 2021],
[11, 24, 2022],
[11, 23, 2023]
";

$christmas = "
[12, 25, 2014],
[12, 25, 2015],
[12, 25, 2016],
[12, 25, 2017],
[12, 25, 2018],
[12, 25, 2019],
[12, 25, 2020],
[12, 25, 2021],
[12, 25, 2022],
[12, 25, 2023]
";

$fourthofjuly = "
[07, 04, 2015],
[07, 04, 2016],
[07, 04, 2017],
[07, 04, 2018],
[07, 04, 2019],
[07, 04, 2020],
[07, 04, 2021],
[07, 04, 2022],
[07, 04, 2023]
";
等等

$blocked_holidays is the array retrieved from the DB

When I try to echo it:
$blocked_string = implode(", $", $blocked_holidays);
$blocked_string = "[ $" . $blocked_string . " ]";

echo $blocked_string;

I get: [ $newyears, $thanksgiving, $christmas ]
如何让它回显字符串的值

如果我将其更改为:

$$thanksgiving = "
[11, 27, 2014],
[11, 26, 2015],
[11, 24, 2016],
[11, 23, 2017],
[11, 22, 2018],
[11, 28, 2019],
[11, 26, 2020],
[11, 25, 2021],
[11, 24, 2022],
[11, 23, 2023]
";

$$christmas = "
[12, 25, 2014],
[12, 25, 2015],
[12, 25, 2016],
[12, 25, 2017],
[12, 25, 2018],
[12, 25, 2019],
[12, 25, 2020],
[12, 25, 2021],
[12, 25, 2022],
[12, 25, 2023]
";

$$fourthofjuly = "
[07, 04, 2015],
[07, 04, 2016],
[07, 04, 2017],
[07, 04, 2018],
[07, 04, 2019],
[07, 04, 2020],
[07, 04, 2021],
[07, 04, 2022],
[07, 04, 2023]
";


它会回显日期,但只会回显最新的变量,而不是所有的变量。

也许这可以帮助您:

$blocked_holidays=array("a", "b", "c");
$a=1; $b=2; $c=3; //testing values
编辑

我想我明白了你想做的事:

$blocked_string=implode(", $", $blocked_holidays);
$blocked_string=eval('echo "[$'.$blocked_string.']";');
echo $blocked_string;

//or simply
$blocked_string=eval('echo "[$'.implode(", $", $blocked_holidays).']";');

尝试签出variables变量,$$variable无法使其工作。我确实找到了这个:并试图让它发挥作用。最接近的时候,它只会显示最后一个变量字符串。检查编辑。这是我对变量的尝试。这回答了问题:不完全是我要做的。
 $blocked_string=array();
 foreach ($blocked_holidays as $value) {
    array_push($blocked_string, ${$value});
 }
 echo '['.implode($blocked_string, ',').']';
$blocked_string=implode(", $", $blocked_holidays);
$blocked_string=eval('echo "[$'.$blocked_string.']";');
echo $blocked_string;

//or simply
$blocked_string=eval('echo "[$'.implode(", $", $blocked_holidays).']";');