php メンバ名を動的に作る方法

例えば、5個の配列をループで処理するのは以下のようにすればよい。

$val = array(1, 2, 3, 4, 5);
for($i = 0, $gokei = 0; $i < count($val); $i++){
	$gokei += $val[$i];
}

しかし、おかしな設計でテーブルのカラムが’val1′, ‘val2’, ‘val3’・・・のようになっていてループで処理したい時がある。
メンバ名(変数名)を動的に作り処理したい場合は以下のように'{‘と’}’で囲んだ中に作りたい変数をセットすればよい。

for($i = 0, $gokei = 0; $i < 5; $i++){
	$gokei += $record->{'val'.($i+1)};
}

インタプリタだから出来るテクニックだね。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です