Символы внутри строк могут быть доступны и изменены, указав нулевое смещение нужного символа после строки, используя квадратные квадратные скобки, как в $str[42]. Подумайте о строке как массиве символов для этой цели. Функции substr() и substr_replace() могут использоваться, если вы хотите извлечь или заменить более 1 символа.
Примечание. С PHP 7.1.0 также поддерживаются отрицательные смещения строк. Они определяют смещение от конца строки. Раньше отрицательные смещения испускали E_NOTICE для чтения (давая пустую строку) и E_WARNING для записи (оставляя строку нетронутой).
Примечание. Строки также можно получить, используя фигурные скобки, как в $str{42}, с той же целью.
Ответ 2
Будьте осторожны, $str[n] и $str{n} введите n-й байт String, а не n-й символ String. Для многобайтового кодирования (UTF-8 и т.д.) Одному символу не нужно быть одним байтом.
$str{0} - первый байт строки
mb_substr($str, 0, 1) - первый символ строки (включая многобайтовые кодировки)