LoginSignup
1
0

More than 5 years have passed since last update.

$_GETの値チェック

Last updated at Posted at 2018-02-07

非常に基礎的な内容なのですが忘れっぽい未来の自分へのメッセージとして書いていきます

自分はPHPでクエリのパラメータを取得する際に

$q = (isset($_GET["q"]) ? $_GET["q"] : "");

みたいな書き方をよくするんですが
$_GET["q"]の中身は
https://qiita.com?q=の時は空文字
https://qiita.comの時は未定義

結果は同じでも挙動が違うのを度々忘れてしまうので
たまにページング用のページ番号取得するときにあれ?ってなります

$page_no = (isset($_GET["page_no"]) ? $_GET["page_no"] : 1);

と書くと$_GET["page_no"]
https://qiita.com?page_no=だと1
https://qiita.comだと空文字

まぁ取得したあとにしっかりとバリデートすればいいだけの話なんですが。。。

最終的にページ番号のような1以上の整数が欲しい場合にはphpの型のゆるさに甘えて

$page_no = (!empty($_GET["page_no"]) ? intval($_GET["page_no"]) : 1);

という書き方にたどり着きました
nullも""も0も"0"も全部1にしちゃいます

負の数はabs()でも使いますか。。。
突き詰めるともっといい方法はいくらでもありますがemptyって便利だなぁって話でした

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0