logo

便利な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/
本プレスリリースは発表元企業よりご投稿いただいた情報を掲載しております。
お問い合わせにつきましては発表元企業までお願いいたします。