前回の続きです。
ソースの上から見ていきます。
$page = 0;
$pageIdx = 0;
if (isset($_GET["page"])) {
$page = intval($_GET["page"]);
if ($page < 0) {
$page = 0;
} else {
$pageIdx = $page * 10;
}
}
この部分、プログラムっぽいですね〜。
ここでは、簡易的なページングの処理を行なっております。
isset関数は、変数の存在をチェックできます。
if (条件) {
処理;
}
という構文は既に出てきている通り、条件が合っていれば処理を実行します。
条件は、真理値の「真 = true」と「偽 = false」で判断されます。
isset関数の戻り値が、このtrueかfalseになってます。
シンプルに、変数があればtrue、無ければfalseが戻り値になります。そのため、
$result = isset($_GET["value"]);
if ($result == true) {
echo "キタコレ!";
}
という書き方でも一緒です。
if文の条件は、比較演算子をつかって判定することもできます。
ざっくりと使える比較演算記号をまとめます。
演算子 | 意味 |
---|
!= | 左右の値が等しくない時trueになります。if(A != B)なら、AとBの値が違う時に成立します。 |
== | 左右の値が等しい時trueになります。if(A == B)なら、AとBの値が同じ時に成立します。 |
> | 左の値が大きい場合trueになります。if (A > B)なら、BよりAのほうが大きい時に成立します。 |
< | 右の値が大きい場合trueになります。if (A < B)なら、BよりAのほうが小さい時に成立します。 |
>= | if (A >= B)なら、AはB以上の時trueになります。 |
<= | if (A <= B)なら、AはB以下の時trueになります。 |
これが、比較的よく使うものになります。
他にも、頭に「!」を付けて、
if (!$AAA) {
echo "AAAはfalseだ!";
}
という使い方もできますが、これは$AAAの値がfalseだった時に条件が成立します。
ちなみに「!」を付けない場合はちょっと変わっていて、
if ($AAA) {
echo "AAAはfalseではない!";
}
となります。もし$AAAにfalseになる値以外の何かしらデータが入っていればtrueになります。
falseになる値は、0やnullです。
他にも条件の使い方でそこそこ登場するのは、以下のような使い方です。
if ($BBB = isset($_GET["value"])) {
echo "valueを受け取りました!";
}
これは、関数の戻り値を$BBBに入れてます。$BBBがfalseで無ければ処理は実行されます。
「==」と書き間違えてしまいそうですのであまり使う人は居ませんが、僕は慣れもあり、場所によってはついつい使ってしまいます。ヒューマンエラーの原因になるので、言語によっては警告やエラーとして扱われます。
if文はプログラムに重要な「条件分岐」ができるのでとても大切です。
そして今回新しく登場した関数は、intvalです。
これは、文字を数字に変換してくれます。
"12345"という文字が、数字の「12345」になるんです。これを行うことにより、四則演算を使ったり、数字として扱うことができます。今回の例で言うと、
$pageIdx = $page * 10;
というように使っています。「*」は乗算ですね。$pageIdxは、データベースの検索「SELECT」命令の最後、データの取り出し範囲を指定する「LIMIT」で使用してます。データを10個ずつ表示させているんですね。
0ページ目は0番目から10個、1ページ目は10番目から10個、というようになってます。
結局issetと組み合わせて何をしているのかというと、「page=数値」という値がGETで来たら、そのページの中身を表示しよう!としているのです。
$pageの値は、「前へ」のリンクを表示する際にも使用してます。今回は簡易的なものなので、「次へ」は常に表示されます。この「前へ」「次へ」のリンクが、「page=数値」でGET送信し、ページング出来るようになるという仕組みです。
次は、データベースから検索したデータを表示する部分の説明をします。
- 関連記事
-