phpのstrpos関数を動きを確認したのでメモ
strposは
文字列内の部分文字列が最初に現れる場所を見つける
とあります
http://php.net/manual/ja/function.strpos.php
使い方は
echo strpos("abcdefg", "c");
// 2
のように、文字列”abcdefg”のなかに”c”が何番目(0始まり)にあるかを返します
もしなければ、FALSEが返ります
よく間違えやすいのが、文字”a”がなければ..のとき
var_dump(false == strpos($str, 'a'));
// true
というコードです
これはaが0番目にあるため、strposは0を返す
phpでは false == 0 は true になります
== だけだと型をみないので
=== で型も見て比較すると大丈夫です
var_dump(false == 0);
// true
var_dump(false === 0);
// false
strposでは型もみて比較しましょう
// もし文字がなければ
if (false === strpos($str, 'a')) ...
// もし文字があるなら
if (false !== strpos($str, 'a')) ...
// 3項演算子でも===で
$str = (false !== strpos($str, 'a') ? 'ある' : 'ない';
3項演算子のときにうっかりしそうです