Каковы последствия для создания строки как b inary?
Я не мог найти никакого намека на это в документации. Просто нашел это небольшое любопытство, просматривая язык_сканера.
Ответ 1
Это токен прямой совместимости для никогда не выпускаемой версии PHP версии 6, которая должна иметь встроенную поддержку юникода.
В PHP6 строки по умолчанию имеют unicode, а функции работают на уровне символов юникода. Это "b" означает "двоичная строка", то есть строка, отличная от unicode, для которой функции работают на уровне байтов.
Это не влияет на PHP!= 6, где все строки являются двоичными.
Ответ 2
Двоичное кастинг доступно с 5.2.1, но не вступает в силу до 6.0, когда вступают в силу строки Юникода.
Это объясняет, почему это не делает ничего особенного прямо сейчас для меня на сервере с использованием 5.2.6: