PHP имеет слабую типизацию, т. Е. Если вы передадите строку, где он ожидает целое число, он будет прозрачно преобразовывать его в целое число, что, в большинстве случаев, хорошо, так как позволяет более чистый код.Но, конечно, это также допускает больше ошибок.
Это (вероятно) причина, по которой сложение и конкатенация выполняются разными операторами (+
преобразует оба операнда в числа, .
преобразуеткак для строк).
Как уже указывалось ранее, вы пытаетесь получить доступ к строковому индексу, который может быть только целым числом, поэтому 'wtf'
правильно преобразуется в 0
и возвращается первая буква.Если вы передадите, скажем, '1o1wut'
, оно будет преобразовано в 1
.