$binary = b'Binary string';
Какими последствиями он должен создать строку как b
inary?
Я не мог найти никакого намека на это в документации. Просто нашел это небольшое любопытство, просматривая язык_сканера.
Это токен совместимости для не-выпускаемой версии PHP версии 6, которая должна иметь встроенную поддержку юникода.
В PHP6 строки по умолчанию имеют unicode, а функции работают на уровне символов Unicode. Это «b» означает «двоичная строка», то есть строка, отличная от unicode, в которой функции работают на уровне байта.
Это не влияет на PHP! = 6, где все строки являются двоичными.
Бинарное кастинг доступен с 5.2.1, но не вступает в силу до 6.0, когда строки unicode также вступают в силу.
Это объясняет, почему это не делает ничего особенного прямо сейчас для меня на сервере с использованием 5.2.6:
<?php $t = b"hey"; var_dump($t); //string(3) "hey" $s = (binary)"hey"; var_dump($s); //string(3) "hey" ?>