double $(变量的变量)不会将变量值作为变量打印

时间:2014-12-12 22:59:57

标签: php

我有以下代码:

<?php
$dates = array('2014-12-01','2014-12-02','2014-12-08','2014-12-09','2014-12-10','2014-12-11');
$values = array(5,3,7,8,9,2);

foreach ($dates as $date){
 //Array of the regarded days names is generated
  $days[] = strtolower(date('l', strtotime($date)))."\n";
}

for ($i = 0; $i < count($days); $i++){
 $day = $days[$i];    
 $$day = $values[$i];
}    
echo $monday;
?>

echo $monday没有打印任何值,我希望它打印8,因为在最后一个循环中我有一个名为$day的变量,该值的最后一个设置应为8那么为什么它没有正确设置?!

这是一个演示:http://codepad.org/VDIyBuq3

1 个答案:

答案 0 :(得分:4)

这是你的问题:

$days[] = strtolower(date('l', strtotime($date)))."\n";
                                                 ^^^^^ here

您要在价值的末尾添加换行符,因此您的值不会是monday,而是monday\n

删除它:

$days[] = strtolower(date('l', strtotime($date)));