1

我有以下3个变量:

        private $a_total;
        private $b_total;
        private $c_total;

现在,当字段填充了一些总计数据时,这些字段的名称是“a”、“b”和“c”。我想将它动态存储到上面的变量中,例如:

      $type = $_POST['totaltype']; //either a, b or c
      $to_save = "{$type}_total";
      $this->$to_save['total'] = some number;

如果我尝试

 print_r($this->$to_save); 

它给出了空数组。如果我尝试:

 print_r($this->$to_save['total']); 

它给出了正确的数字。

谁能帮忙?

注意:我想动态使用,因为这些数据将在一个大循环中,所以我不想重用$a_total, $b_total$c_total因为我将拥有多个a,bc变量。

4

2 回答 2

1

您可以将变量名称包装在类内的大括号中:

$this->{$type . "_total"} = 5;

像数组一样访问它时同样有效:

$this->{$type . "_total"}['total'] = 5;

您还可以将变量的全名保存在字符串中,例如 your$to_save并以相同的方式访问它:

$to_string = $type . '_total';
$this->{$to_string}['total'] = 5;
print_r($this->{$to_string});
于 2012-11-05T14:03:55.967 回答
0

更改$a_total$total['a'], ,和, $b_total_$total['b']$c_total$total['c']

然后您可以动态访问这些值。

于 2012-11-05T14:02:26.143 回答