140219訓練

投稿者: | 2014年2月19日

昨日からのお題。
英単語テーブル「words」を検索するページを作る。
ページャー付きでモリッと作ったのでコードをドーンッ!

検索ページを作る

コード

ページャーリンクにクエリパラメータを渡して、
(そのページの値-1) × 20件目から20件分配列の要素を取り出す処理をしている。

表示

search_words
軽くスタイルあててます。

const

定数を定義する。
本来はクラス定数を定義するものだったが、PHP5.3.0以降ではクラス外で定義できるようになった。
詳しくはマニュアルの構文の項目で。
今回は1ページに表示する件数を定数とした。

PDOStatement::fetchAll

全ての結果行を含む配列を返す。
結果セットをそのまま配列に入れたい場合などに使える。
SQL文を二回発行(レコード数、ページに表示する20行だけのレコード)したくなかったので一度全部配列に詰めている。

PDOStatement::rowCount

直近のSQLステートメントによって作用した行数を返す。
今回は検索結果の結果セットの行数(ヒットした数)を取らせるつもりだったが配列に詰めてるしcountでいけるやん・・・・ということでコメントアウト。

ceil

端数の切り上げ。数学関数の一つ。
今回はページ数を割り出すのに少数になったり切り捨てになったりで最終ページが表示されない状態にならないために使った。

echoとprint

文字列を出力するという点においては差は無い。
好き好きなんて言う話もあったりする。
ただ挙動が違うのでここで一回押さえておこうと思う。

echoの特徴

一つ以上の文字列を出力する。
カンマ区切りで複数の文字列を出力できる(ただし括弧を使うと複数指定できない)
返り値が無い(printよりわずかに速い)

printの特徴

文字列を出力する。
複数の文字列は出力できない(ただしピリオドによる文字列連結は出来る)
返り値がある、常に1を返す(この処理でechoよりわずかに遅い)

こちらの記事「あなたは『echo』派?それとも『print』派?」 – ht79.infoではPerlにはechoが無かったはずだから昔からそういう言語に触れている人はprintが多いのでは?と言及しています。
こちらの記事「PHPのechoとprintの違い」 – FLAMA技術Blogでは詳しい挙動の差に触れながらprintを個人的におすすめしていると語られています。

やはり好みが大きい感じもしますが、
大規模な処理が行われる場合のことも考えると個人的にはechoを使うべきなのか?とも思いますが、もっと根本的な処理を改善すべきじゃね?と考えればechoじゃなければならない!って感じでもないです。
括弧のくくりやすさで見通しが良くなりそうなprintも個人的には好きですし。(と言うか調べるまでprintオンリーでええやろって思ってた)
とにかく制作単位(プロジェクト、個人)でルールを設けて見通しを良くするのが良さそうですね。

今日のひとこと

dropboxに昨日の日付のフォルダが無いんですけど昨日はやらなかったんですか?

んなわけあるか・・・・


コメント

Loading Facebook Comments ...

コメントを残す

No Trackbacks.