判別効率および判別できなかった場合
上記コードサンプルでは、端末の各世代およびPCで条件分岐をしています。
これらの順番は任意で良いのですが、プログラム処理の効率から、最も多いと考えられる端末から順に判別式を記載しています。
それぞれマッチしたところでその後の処理をせずに関数を抜けるので、多い順に記載すれば全体の処理効率が上がります。
また、最初にユーザエージェント情報が取得できなかった場合も余計な処理を行わずに「不明」を返して終了しています。
端末の判別に関しては、上記の例だと、以下の順番で多い、と予想していることになります。
Docomo -> EZ Web(WAP2.0) -> Vodafone 3G -> 3G 以外の Vodafone -> Softbank -> EZ Web(HDML)-> PC端末
最後に、どれにも当てはまらなかった場合の返り値を返しています。
return '不明';