以下のコードにつきまして、お聞きしたいことがございます。
php
1<?php 2require '../DbManager.php'; 3require '../Encode.php'; 4?> 5 6<<!DOCTYPE html> 7<html> 8<head> 9 <meta charset="utf-8"> 10 <title>結果セット</title> 11</head> 12<body> 13 <table border="1"> 14 <tr> 15 <th>ISBNコード</th><th>書名</th><th>価格</th><th>出版社</th><th>刊行日</th> 16 </tr> 17 <?php 18 try{ 19 $db = getDb(); 20 $stt = $db->prepare('SELECT * FROM book ORDER BY published DESC'); 21 $stt->execute(); 22 while($row = $stt->fetch(PDO::FETCH_ASSOC)){ 23 var_dump($row); 24 ?> 25 <tr> 26 <td><?=e($row['isbn']) ?></td> 27 <td><?=e($row['title']) ?></td> 28 <td><?=e($row['price']) ?></td> 29 <td><?=e($row['publish']) ?></td> 30 <td><?=e($row['published']) ?></td> 31 </tr> 32 <?php 33 } 34 }catch(PDOException $e){ 35 echo "エラーメッセージ:{$e->getMessage()}"; 36 } 37 ?> 38 </table> 39</body> 40</html>
上記の「 while($row = $stt->fetch(PDO::FETCH_ASSOC)){」ここの部分なのですが、while文はtrueの場合のみ、中身の処理が実行されると思いますが、仮にまず1回目の繰り返し処理が行われた場合、2回目の条件式の評価に映ると思うのですが、その際、「$row = $stt->fetch(PDO::FETCH_ASSOC)」ここの部分では、再びfetchメソッドが呼び出され結果セットから次の行を取得しているかと思うのですが、このように、while文の条件式の評価というのは、trueもしくはfalseを評価するだけでなく、再度メソッドを呼び出し実行するといった処理も再び行われる、といった解釈であっていますでしょうか...?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/23 03:32