0

下面的代码或多或少是我代码的一部分。$servername$monthlyincome变量实际上不是静态的,如此处所示,但我更改了它们,因此我可以在这里添加更少的代码。

如果我运行此代码...

$servername="Server1";

$months = array('January','February','March','April','May','June','July','August','September','October','November','December');


for ($i=0;$i<=24;$i++) {
    $new_time = mktime(0,0,0,date("m")+$i,1,date("Y"));
    $months_array[date("Y",$new_time)][date("m",$new_time)] = "x";
}

$overallincome = 0;

foreach ($months_array AS $year=>$month) {
    foreach ($month AS $mon=>$x) {
        $monthlyincome = 3;
        $overallincome += $monthlyincome;

        $$servername[$months[$mon-1]." ".$year]['monthlyincome']=$monthlyincome;
        $$servername[$months[$mon-1]." ".$year]['overallincome']=$overallincome;

    }
}

我得到这个错误...

不能在第 123 行将字符串偏移量用作数组

123行就是这条线……$$servername[$months[$mon-1]." ".$year]['monthlyincome']=$monthlyincome;

我无法弄清楚我做错了什么。我检查了 SO 上的其他帖子也有同样的错误,但对我来说没有任何意义。

4

1 回答 1

1

那就把它当作答案吧!

$$servername[]似乎是问题所在。它将它解释为${$servername[]}您希望它解释为 ${$servername}[] 的位置。

试着把那些花括号放在那里,看看是否有帮助。

于 2013-05-06T15:50:35.990 回答