PHPでstrpos()関数を実行したとき、下記の警告が表示される場合があります。
PHP Warning: strpos(): Empty needle in...
これは、strpos()の第二引数が、空文字列のときに発生します。
Warning出力の再現コード
<?php
$data = 'abracadabra';
$pos = strpos($data, 'bra'); // これは大丈夫(エラーにならない)
echo $pos . PHP_EOL; // 1
$pos = strpos($data, ''); // エラーが発生: PHP Warning: strpos(): Empty needle in...
echo $pos . PHP_EOL;
Warningが出力されそうで、実は出力されないパターン
以下のコードは一見するとWarningが出そうですが、Warningは表示されません。
ダメなのは、空文字列の時だけのようです。
<?php
$data = 'abracadabra';
$pos = strpos($data, null); // エラーにならない
var_dump($pos); // bool(false)
$pos = strpos($data, false); // エラーにならない
var_dump($pos); // bool(false)
$pos = strpos($data, 0); // エラーにならない
var_dump($pos); // bool(false)
こちらもおススメ