• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP ループでの文字結合の流れ)

PHPのループで文字を結合する方法

nekomikekamoの回答

  • ベストアンサー
回答No.5

もう少し具体的に変数について見ていく必要がありそうですね。 $zzz="foo"; と記載した場合、$zzzにfooという文字列が格納されます。 この時=は、代入を意味します。 では、次に以下の2行について考えてみます。 $zzz = "foo"; $zzz ="bar"; 最初は、$zzzにfooという文字列が格納されます。 次に再び$zzz ="bar"がありますが、 この意味は、$zzzの中身をfooからbarという文字列に代入し直すことを意味します。 つまり上記2行の結果、$zzzは、最初fooが入っていたが、次の=で中身がbarに変更されます。 その結果、上記2行を実行すると、$zzzには、barが格納されます。 次に以下の例について考えてみましょう。 $zzz = "foo"; $zzz .= $i."回目"; 1行目は全く同様で、$zzzにfooという文字列が格納されます。 2行目が文字結合の簡略化記法で、 $zzz =  $zzz. $i . "回目"; と全く同じ意味になります。 この時左辺と右辺に$zzzがありますが、右辺から処理していきます。 つまり、現在$zzzには、fooが入っているため、($iにも1が入っているので合わせて展開) $zzz =  "foo". 1. "回目"; 右辺を文字結合すると以下のようになります。 $zzz = "foo1回目"; これは、$zzz =  "foo";と全く同じ、$zzzへの代入式になります。 つまり、$zzzには"foo1回目"という文字列が新たに格納されるようになります。 whileでは、$iを加算し、以下の行が再び実行されます。 $zzz .= $i . "回目"; whileの1回目で、$zzzは、"foo1回目"に置き換わっています。 $zzz .= $i . "回目"; ↓ $zzz =  $zzz. $i . "回目"; ↓ $zzz =  "foo1回目". 2 . "回目"; ↓ $zzz =  "foo1回目2回目"; このように変化し、2回目のループで、$zzzの値は、"foo1回目2回目"に置き換わります。

okdayook
質問者

お礼

まだよく理解はできていないのですが この問題に固執せず、先に進み いつか理解できるまでがんばろうと思います。 分かりやすい解説ありがとうございました!!

関連するQ&A

  • PHPループをカウントダウンできますか?

    <?php $i = 0; while ($i < 10) {   if ($i == 5) {    echo "$i 回で終わります<br>";    break;   }   echo "$i 回目のループ<br>";   $i++; } 【結果】 0 回目のループ 1 回目のループ 2 回目のループ 3 回目のループ 4 回目のループ 5 回で終わります と、0,1,2,3,4,5とループがありますが、 この結果を逆に、 5 回で終わります 4 回目のループ 3 回目のループ 2 回目のループ 1 回目のループ 0 回目のループ とすることは可能でしょうか?? また、もし可能であれば、なんという方法(名称?専門的な呼び方?)となるのでしょうか ご存じの方いらっしゃいましたら、ご回答お願い致します。

    • ベストアンサー
    • PHP
  • PHP プログラム ループ処理

    プログラム初心者です、ループ処理についてうまい解決方法が思い浮かばず相談させて頂きます。 ループ処理において、ループ内で変数を定義するのに違う名前を指定するにはどのような方法があるのでしょうか 例えばwhileの場合 $i =0; while($i<10){ $hoge = $i; $i++ } この$hogeを2順目には$hoge1、3順目には$hoge2と言うように増やしたり一定の法則に乗っ取って変数名を変更するにはどのように書けばいいのでしょうか。 どなたかご教授頂ければと存じます、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • objective-cの変数結合について

    毎度お世話になります。 objective-cでのループ処理を利用したオブジェクトと変数の結合方法が分からなくて質問する事にしました。 私の検索方法が悪いのか見つからなかったので・・ phpでループを利用した変数の結合をする場合だと、 for($i = 0; $i < 2; $i++){ echo "com".$i; } でcom0とcom1の表現が問題なくいけますが、 objective-cではどのようになるのでしょうか。 初級的な質問で申し訳ないのですが、どうかよろしくお願いします。

  • php 変数(変数名)の結合について。

    php 変数(変数名)の結合について。 こんばんは。 phpでホームページを作成しておりますが どうも上手く動かないのでこちらに質問させて頂きました。 変数名$testに数字を連番で付け、 $test0 = (値1,値2,値3,・・・) $test1 = (値1,値2,値3,・・・) $test2 = (値1,値2,値3,・・・) と各変数に配列を代入したいと考えています。 そこで、for文を使用し、 for($i=0; $i<10; $++) {  $test.$i = (値1,値2,値3,・・・) } と記述た所、上手く動作せずに困っております。 二次元配列での代入は可能だと思いますが $test[0] = (値1,値2,値3,・・・) $test[1] = (値1,値2,値3,・・・) $test[2] = (値1,値2,値3,・・・) for($i=0; $i<10; $++) {  $test[$i] = (値1,値2,値3,・・・) } ※ 実験してませんけど・・・。 なるべく二次元は使わないで処理したく思いますが やはり二次元配列のが合理的でしょうか・・・。 その点も踏まえ、何方かご教授頂ければ幸いです。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP変数に関する質問

    こんばんは、 while文で変数の値を出力したいのですが $i=0 while ($i <= 3){ echo ${'accountnumber'.$i}; i++; } 動作しません $accountnumber1 = 'naninani'; $accountnumber2 = 'foobar'; $accountnumber3 = 'hogepiyo'; のようにあらかじめ作ったものですが、 どうやってこれらの変数の値を出力できますか ご回答を宜しくお願いします。

    • ベストアンサー
    • PHP
  • perl:ループのカウンタ変数の値を保持したい。

    While文のループのなかにfor文でループをまわしているスクリプトなのですが、 forの中でカウンタ変数をつくり、ループ回数を計測しております。 またforの中である条件を満たした際に、lastでforを抜け、引き続きWhileのループを継続するという処理をしております。 $i=0; While(○○){ 処理1    for(××){ 処理2 $i++;      if($i >=100){  処理3       last; } } } ここで、一度for文のif文で一度forループを抜け、Whileでループをし、またforループに突入した際に、前回forループでカウントした$iの値を保持したまま、そのつづきから$iのカウンタを動作させたいのですが、$iの値はforループを抜けるとリセットしてしまいます。 このような場合、どうすれば$iの値を保持できますでしょうか。 お詳しい方、宜しくお願い致します。 ※ネストがうまく表現できず、みずらくてスミマセン。

    • ベストアンサー
    • Perl
  • 数値チェックについて

    PHP初心者です。 PHPには変数の型が弱いこともあって困っています。 たとえば変数 $value => xxxx(何が入っているかわからない) $i => 1 の時 while($i < $value){ echo("こんにちは"); $i++; } という処理を行いたいと考えています。 ここで問題なのが$valueに格納されている値です。 10とか9999とかなら問題はありませんが"山田太郎"なんて ものが入っていたら大変です。(怖くて確かめられません・・・) そこで$valueが数値かどうかチェックする方法なんてありますか?

    • ベストアンサー
    • PHP
  • 添え字が全て文字列のPHPの多次元配列をSmartyでループ表示したい。

    PHPで作成した多次元配列をSmartyでループして表示する方法について。(添え字が全て文字列の場合で、ループ回数を固定したい。) こんにちわ。 以下のような配列があるとします。 $abcde = array("sakana" => array("aaa" => "あじ","bbb" => "ひらめ"),"oyasai" => array("ggg" => "ふき","hhh" => "トマト"),"niku" => array("eee" => "ぶた","ooo" => "鳥")); echo "<pre>"; print_r($abcde); echo "</pre>"; この配列をSmartyに渡し、以下の条件でループして表示したいのですが、いい方法はありますでしょうか。 ・ループ回数は二回 ・一番最初の添え字(sakana、oyasai、niku)の値を使わずに表示したい。(自動的に上から順番に取り出してほしい) foreachだと全ての値が表示されてしまい、sectionだとうまく表示されませんでした。 ↓こんな感じで表示したいです。(ループ二回なので肉は表示せず) 魚 :あじ、ひらめ 野菜:ふき、トマト よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPのループ数限界値について

    PHPのループ数限界値について 宜しくお願い致します。PHP 5.1.6を使用しております。 PHPのforやwhileのループ処理について、限界のループ数というのは存在するのでしょうか? 今作っているプログラムで、約15,000項目の配列と約10,000項目の配列で2重のループ処理しています。 この場合のループ数は15,000×10,000=150,000,000回の繰り返し回数となってしまいます。 しかも、この配列数は今後も増える可能性が高いです。 ループの限界値が何回なのか、教えてください。

    • ベストアンサー
    • PHP
  • PHP 配列について

    phpとDBでシステムを作っています DBをよみながら配列と比較しています。 ループ中の配列で2回目以降がどうしても配列の値が入りません $Baitai[$cnt]で1回目は配列の値が来るのですが 2回目以降が一部の文字bしか入りません ご教授お願いします。 while($arr_record = mysql_fetch_assoc($rs)) { foreach($arr_record as $field_name => $field_value) {            if($field_value<>"") { echo $Baitai[$cnt]; $Baitai="Baitai".$k; if($Baitai[$cnt]==$field_value) { ?>       <input type="checkbox" value="<?php echo $field_value;?>" Name="<?php echo $Baitai;?>" checked><?php echo $field_value;?> <?php } else { ?> <input type="checkbox" value="<?php echo $field_value;?>" Name="<?php echo $Baitai; ?>"><?php echo $field_value;?> <?php } } $cnt=$cnt+1;             $k=$k+1; } }

    • ベストアンサー
    • PHP