PHP substrで文字列の終わりより後を開始位置として指定したとき

false が返ってくる。

<?php

   // 0123
   // ABC
   $str = 'ABC';

   $s = substr($str, 2, 1);
   echo "[$s]\n";
   var_dump($s);

   $s = substr($str, 3, 1);
   echo "[$s]\n";
   var_dump($s);
[C]
string(1) "C"
[]
bool(false)


マニュアルに書いてある。
http://php.net/manual/ja/function.substr.php

string の長さが start 文字より短い場合は FALSE が返されます。

http://php.net/manual/en/function.substr.php

If string is less than start characters long, FALSE will be returned.