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ん。abc

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 に答える