PHPのglob
関数はfalse
を返す場合がある。

PHPUnitなどでglob
関数を含むコードをテストしているとき、このケースを満たすためにfalse
がどうしても欲しい場合がある。しかし、よっぽどのことがない限りfalse
に出会うことはない。手元の環境で実行してみた限りでは、マッチするファイルが見つからなくてもfalse
が返ることはなかった。
PHPのソースコードを読んで、唯一手軽にfalse
を返させる方法は、極端に長いパターンを与えることだとわかった。
var_dump(glob(str_repeat('.', 1024)));
Warning: glob(): Pattern exceeds the maximum allowed length of 1024 characters in /../test.php on line 3
bool(false)
つまり、テストで意図的にfalse
を返させるには、glob
に長い文字列を渡すとよい。