便利なFilter関数を使いこなそう その2
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
ヒューマンリソシア株式会社はコラム「便利なFilter関数を使いこなそう その2」を公開しました。
前回は「filter関数にたどり着くまで」の例題で終わってしまいましたので。
今回こそは、お題になっているfilter関数を、しっかりと確認していきましょう。
基本的にはfilter_var()関数を中心に会話を進めていきます。
では、今までのコードと同じようにして、filter_var()関数を使ってみましょう。
function hoge($s) {
var_dump($s);
var_dump(filter_var($s, FILTER_VALIDATE_INT));
echo "\n";
}
//
hoge(''); // false
hoge('0');
hoge('1');
hoge(1.1); // false
hoge('1.1'); // false
hoge(-10);
hoge('-10');
hoge('1e2'); // false
hoge('1.1e2'); // false
hoge('0xfa20'); // false
hoge('0b0011'); // false
hoge('0777'); // false
filter_varは基本的に「フィルタで失敗したらboolean false」をreturnします。
興味深いのが’0777’です。今までこの8進数表記はどの方法でもtrueでしたが、このfilter_var()関数を使うと
falseになります。
また、戻り値がfalseではない場合「整数型の値」として返ってくるので、状況によってはとても使い勝手が
よいかもしれません。
同じような関数は工夫すれば書けるでしょうが、工夫しなくてもすでに「ある」ので、使わない理由もないと思います。
バージョン表記も「(PHP 5 >= 5.2.0)」ですので、使えない環境も、そろそろ「極めて希である」と言ってよいと
思われます。
さて。
ではこのfilter_var()関数を、少し細かくみていきましょう。
この関数自体は「指定したフィルタでデータをフィルタリングする」とだけあります。…では「整数かどうか」は、
どのように指定をしていたのでしょうか?
第一引数は「フィルタ対象の値」です。
第二引数に渡す定数(大文字で構成されているんで、定数だなぁ、というのはすぐに想像が付くところですね!)が、
フィルタの挙動をきめていきます。
今回は FILTER_VALIDATE_INT を指定したので、INTが付いている事から
「あぁ整数、って指定をしているんだろうなぁ」というのが、大体、想像の付くところになります。
この定数について、少し分解して見てみましょう。
FILTER_VALIDATE_INTのようなものを「フィルタの型(Types of filters)」と呼称しますが、
大まか3種類あります。
この続きは以下をご覧ください
http://resocia.jp/column/5228/
ソーシャルもやってます!