PHP初心者です。
以下のコードをすっきりとスマートに書きたいのですが・・
$pointAL = $pointA1+$pointA2+$pointA3+$pointA4+$pointA5+$pointA6+$pointA7+$pointA8+$pointA9+$pointA10 ;
for文と変数の型がポイントなところまではわかったのですが
ご教授ください
$pointA1などは 配列にすれば 以下のようにして forで扱えます。
<?php $pointAL = ""; $pointA[1] ="1"; $pointA[2] ="2"; $pointA[3] ="3"; $pointA[4] ="4"; $pointA[5] ="5"; $pointA[6] ="6"; $pointA[7] ="7"; $pointA[8] ="8"; $pointA[9] ="9"; $pointA[10] ="10"; for($i = 1; $i <= 10;$i++){ $pointAL = $pointAL . $pointA[$i]; } print $pointAL; ?>
変数の内容が数値ならば
$pointAL = $pointAL . $pointA[$i];
の行を
$pointAL = $pointAL + $pointA[$i];
にしてください。
可変変数(http://www.php.net/manual/ja/language.variables.variable.php)というものを使い、以下のように記述します。
ご質問の通り、$pointA1 + $pointA2 + ... + $pointA10 を合計します。
$pointA = 'pointA'; $pointAL = 0; for ($i = 1; $i <= 10; $i++) $pointAL += ${$pointA . $i};
しかし、可変変数は初心者向けではありません。配列(http://www.php.net/manual/ja/language.types.array.php)を使うのが無難です。
配列を使うと変数名が変わり、$pointA[1] + $pointA[2] +... + $pointA[10] の合計をする形になります。
たとえば以下のようになります。
<?php $pointA = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); $pointAL = 0; for ($i = 1; $i <= 10; $i++) $pointAL += $pointA[$i]; echo $pointAL; ?>
$pointA1~$pointA10という変数名に数字が入ってしまっているなら、
$pointA1 = 1; $pointA2 = 2; $pointA3 = 3; $pointA4 = 4; $pointA5 = 5; $pointA6 = 6; $pointA7 = 7; $pointA8 = 8; $pointA9 = 9; $pointA10 =10; for ( $i = 1; $i <= 10; $i++ ) { $temp = "pointA" . $i; $pointAL += $$temp; } echo $pointAL;
です。
「変数の型がポイント」というのが配列を指しているのであれば、
$pointA[1] = 1; $pointA[2] = 2; $pointA[3] = 3; $pointA[4] = 4; $pointA[5] = 5; $pointA[6] = 6; $pointA[7] = 7; $pointA[8] = 8; $pointA[9] = 9; $pointA[10] =10; for ( $i = 1; $i <= 10; $i++ ) { $pointAL += $pointA[$i]; } echo $pointAL;
のほうがスマート。
ただし、通常は配列は0番から始まります。今回はわかりやすく、かつ特にこのサンプルだけであれば問題ないので、1番から始めています。
コメント(1件)
$pointA = Array( 1,2,3,4,5,6,6,7,8,9,10 );
$pointAL = join( "", $pointA );
print( $pointAL );