PHPのwhileの理解の仕方

このQ&Aのポイント
  • PHPのwhile文について理解する方法を教えてください。
  • 初心者向けの参考書を読んでいますが、while文の一部が説明されていないため、どう解釈すればいいかわかりません。
  • 初心者にとって理解が難しいwhile文の構文についてアドバイスをいただきたいです。
回答を見る
  • ベストアンサー

PHPのwhileの理解の仕方教えてください。

初めまして。つい最近PHPを勉強しようと始めました。 初歩の初歩でまったくの知識がなく、参考書を何度も読んでいますが、 理解の仕方が分かりません。 下記のwhileの例文にについてお教えください。 <?php echo "整数を入力:"; $a = trim(fgets(STDIN)); $result = false; $n = 2; while($n <= $a/2){ if($a % $n == 0){ $result = true; } $n++; } if($result){ echo $a . "は、素数じゃないです。"; } else { echo $a . "は、素数です。!!"; } ?> 例文の中の$result = false; や$result = true;が 参考書には説明していなく、 どのようにwhileの構文では解釈すればよいのか お教えください。(あってもなくてもよいのか?) この$result = false;がなくてもPHPで動作はできるのは確認済みなのですが、 どうしてもこの部分が気になり、理解をしようと別の参考書のwhileの部分を読みましたが、 全く理解できませんでした。 この程度の知識で無謀だというのは十分承知しておりますが、 今後も同様な事(何が書いてあるか分からない)が起きると思いますので、 何か良いアドバイスをお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yuukitnk
  • ベストアンサー率26% (6/23)
回答No.1

ここで使われているwhile構文と$resultは全く関係ないです. $resultとは読んで字の如く,結果を格納する変数です. true, falseはブール値と呼ばれ,簡単に言うと”ある”か”ない”かを表す値です. $nを小さい方から調べていき,最後までWhile構文の中のifを満たすか検討します. 最終的に$resultにTrueが入る場合,下のif構文において,上のものが,$resultがいつまでもtrueが代入されないときはelseの構文が実行されるということです. ブール値はかなりの基本ですので,頑張って勉強してみてください.

yorivvv
質問者

お礼

回答有難うございます。ブール値ですね。 これで次の勉強につながります。 本当にありがとうございます。

その他の回答 (1)

  • mzon
  • ベストアンサー率48% (26/54)
回答No.2

回答はNo1さんがされているので私が勉強してる参考サイトです。 初心者用PHP入門:http://www.standpower.com/index.html PHPのマニュアル:http://php.net/manual/ja/index.php

yorivvv
質問者

お礼

貴重な回答有難うございます。 サイトを参考に勉強頑張ります。

関連するQ&A

  • PHP

    PHPで下のPHPが読み込まれません。なぜでしょうか? <?php: $result = array(); $path = '/etc/cron.d/autopbxrestart'; $handle = fopen($path, 'r'); while(false !== ($line = fgets($handle))){ list($fun, $jikan, $hi, $tuki,$youbi) = explode(' ', $line); $result{0} = $fun; $result{1} = $jikan; $result{2} = $hi; $result{3} = $tuki; $result[4] = $youbi; echo $result{0}; echo $result{1}; echo $result{2}; echo $result[3]; echo $result[4]; fclose($handle); } ?> <php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $erandayoubi = $_POST['youbi']; foreach($erandayoubi as $youbi){ echo ' '. $youbi. '曜日 '; } echo $_POST['jikan']. "jikan".POST['fun']. "分 実行有無:[".$_POST['opt']. "]を設定しました。"; ?>

    • ベストアンサー
    • PHP
  • PHPカレンダーについて

    今カレンダーを作成している段階です。 http://w1.nirai.ne.jp/freeze/main/file11.html ↑このサイトのプログラムを参考にしているんですが、 <html> <head> <title>カレンダー</title> </head> <body> <form action="<?php echo $_SERVER["PHP_SELF"]?>" method="POST"> <select name="year"> <?php $cnt = 1970; while($cnt<2038){   if($cnt==date(Y)){   echo "<option value='$cnt' selected>$cnt</option>";   } else {  echo "<option value='$cnt'>$cnt</option>";  } $cnt++; } ?> </select> <select name="month"> <?php $cnt=1; while($cnt<13){   if($cnt == date(n)){   echo "<option value='$cnt' selected>$cnt</option>";   } else {   echo "<option value='$cnt'>$cnt</option>";   } $cnt++; } ?> </select> <input type="submit" value="作成!"> </form> </body> </html> このPHPプログラムを実行してもエラーが消えません。 どこが間違っているのかどなたか教えてください。

    • 締切済み
    • PHP
  • この真偽値は何の為?

    ごくごく初歩的すぎる為か、検索しても答えに尋ねあたらず、質問させてください。 PHPの「連想配列」の項で、参考書の例文(一部変更しています・下記)において、8行目に $flg = false; とありますが、なぜここでこの真偽値が必要なのかわかりません。 予めfalseを入れておいて後からtrueに変わる分岐がある例文は以前ありましたが、今回は以降に $flg が出てこない為、悩んでいます。 よろしくお願いいたします。 <?php $data = array( 'aaa' => 'aaa@xxx.com', 'bbb' => 'bbb@yyy.com', 'ccc' => 'ccc@zzz.com' ); $flg = false; echo "名前は?"; $a = trim(fgets(STDIN)); if($data[$a] == null){ echo "データは見当たりません。"; } else { echo $a . "のメールアドレスは" . $data[$a] . "です。"; } ?>

    • ベストアンサー
    • PHP
  • PHP

    PHPで <p>曜日</p> <p> <input type="checkbox" name="youbi[]" value="1" <?php if(strstr($result[4],'1')) echo"checked"; ?>>月 <input type="checkbox" name="youbi[]" value="2" <?php if(strstr($result[4], '2')) echo"checked"; ?>>火 <input type="checkbox" name="youbi[]" value="3" <?php if(strstr($result[4],'3')) echo"checked"; ?>>水 <input type="checkbox" name="youbi[]" value="4" <?php if(strstr($result[4],'4')) echo"checked"; ?>>木 <input type="checkbox" name="youbi[]" value="5" <?php if(strstr($result[4],'5')) echo"checked"; ?>>金 <input type="checkbox" name="youbi[]" value="6" <?php if(strstr($result[4],'6')) echo"checked"; ?>>土 <input type="checkbox" name="youbi[]" value="0" <?php if(strstr($result[4],'0')) echo"checked"; ?>>日 </p> <p>時間</p> <p> <input type="submit" value="設定" /> とやると日曜日を選択してsubmitするとチェックが外れます。なぜでしょうか?

    • ベストアンサー
    • PHP
  • phpのページ送りについて

    既出の質問で大変恐縮ですが、どうしても自分の理解力が足りないため、教えてください。 phpでページ送りの機能をつけようと思います。 100件だけ取り出して、あとを 前のページへ|1|2|3|…|次のページへ のようにするのはどうしたらよいのでしょう。 いま組んでいるベースを書きます。 初心者で勉強をしているのですが頭が悪く、できれば下記に合わせて作っていただけますと幸いです。 ================================================================================== $sql2 = "select * from creater"; $result2 = mysql_query($sql2); $rows2 = mysql_num_rows($result2); if($rows2 == 0){ echo "<p>該当データがありません。</p>"; } else { while($row2 = mysql_fetch_array($result2)){ echo "<p><a href=\"creater.php?createrid=",$row2["createrid"],"\">"; echo $row2["creater"]; echo "</a>"; echo "</p>"; } } ================================================================================== 実際のページは ttp://www.game-minzoku.jp/all-creater2.php です。 何とぞ、よろしくお願いいたします。

    • 締切済み
    • PHP
  • javascript関数の戻り値でphpの条件分岐

    こんばんは。 またまたプログラミングで詰まってしまいました・・・。 <?php    echo "<script> funcJS(); </script>"; //javascriptの関数。戻り値true/false    if(funcJS()の戻り値がtrueかどうか){       <~phpの処理~>     } ?> のようなプログラムがあったとして、funcJS()の戻り値の値によって、『phpの処理』を行うかどうかを決定したいのですがそのアルゴリズムが思いつきません。 色々と試行錯誤はやってみて、 (1)phpの変数にfuncJS()の戻り値を格納して、if文で条件分岐  $value = "<script> funcJS(); </script>";   しかし、これは$valueに戻り値を入れることができませんでした。 (2)javascript変数に戻り値を格納して、javascript内のif文で条件分岐 <?php    echo "<script> var value=funcJS(); </script>"; //javascriptの関数。戻り値true/false    echo "<script> if(value == 'true'){ </script>";       <~phpの処理~>    echo "<script> } </script>"; ?>  これも"}"がないと怒られてしまいました。 自分で思いつく限りは試してみたのですが、他に方法が思い浮かばず頭を抱えている状態です。 何か良い方法を知っている方、思いついた方、よろしくお願いします。

  • phpでデータベースを呼び出してデータがなかったら

    phpでデータベースを呼び出してデータがなかった場合の処理をif文を使って行いたいのですがどうしたらいいのでしょう? $result = mysql_query("select id from table where id = 1"); として1というidが入ってない場合$resultの中身はどうなるのでしょうか? if(idが存在しない時の条件) { echo "そんなデータ登録されてないよー" }else{ echo "$result" } としたいのですがifの条件の作り方がわかりません。 みなさんならどうしますか?

    • ベストアンサー
    • MySQL
  • javaへの変換

    class Integer def prime? n = self.abs() return true if n == 2 return false if n == 1 || n & 1 == 0 d = n-1 d >>= 1 while d & 1 == 0 20.times do a = rand(n-2) + 1 t = d y = ModMath.pow(a,t,n) while t != n-1 && y != 1 && y != n-1 y = (y * y) % n t <<= 1 end return false if y != n-1 && t & 1 == 0 end return true end end module ModMath def ModMath.pow(base, power, mod) result = 1 while power > 0 result = (result * base) % mod if power & 1 == 1 base = (base * base) % mod power >>= 1; end result end end 上記プログラムをjavaで書き直して頂きたく投稿いたしました。 もしよろしければお願いします。

  • php問題について

    php の問題でどうしてこの答えになるかわかりません。 教えて下さい if(【 A 】) { print("true"); } else { print("false"); } 【1】"php" > "perl" 【2】0 != "0" 【3】5 - 6 + 1 【4】"false" 【5】0 + "false" 【6】"543a" < 56 【7】abs(-6) > 10 / 2 あなたの回答: 【2】【3】 正答: 【1】【4】【7】 どうして1がせいかいなのかわかりません。 教えて下さい

    • ベストアンサー
    • PHP
  • PHPでクッキー設定がうまくいかない

    PHPでウェブアプリを開発中です。 クッキーを設定したいのですが、下記のコードでうまくいきません。 $mail = $_REQUEST['mail'] ; $result1 = setcookie('mailaddress',$mail,time() + 3600 * 24 * 30,'/') ; if ($result1){ echo "&cookie1=OK" ; }else{ echo "Content-type:text/plain; charset=UTF-8"; echo "&cookie1=NG" ; return ; } 上記を実行すると$result1にfalseが返ってきます。 もちろん、クッキーは設定されていません。 原因として何が考えられるでしょうか? やりたいのは、ログイン時にユーザーが入力したメールアドレスを クッキーに保存しておいて、次回ログイン時にはそれが自動的に メールアドレス入力フィールドに表示させることです。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう