Двоичные строки были введены в PHP 5.2.1, но, как ожидается, вступят в силу только начиная с PHP 6. Это была попытка различить Unicode и двоичные строки. Первый - это новый формат строки, последний - текущий формат, но измененный на нотацию "b".
Как вы, возможно, знаете, PHP 6 был заброшен и формат строки не изменился. Обозначение «b» - это просто пережиток той эпохи.
'foobar' === b'foobar'; // true
Поэтому в настоящее время (PHP 5 и 7) двоичная строка является единственным форматом строки. Кодировка символов (которая может быть многобайтовой) управляется на «верхнем уровне» вашим текстовым редактором, веб-браузером и т. Д. Вы можете считать двоичную строку строкой, состоящей из полного диапазона байтовых значений 0-255.
Строка с непечатаемыми символами и т. Д. Может обрабатываться в PHP как любая другая строка, но вы получите мусор, отображающий ее. Также некоторые символы имеют специальное значение: \0
отмечает завершение строки в C и SQL, есть управляющие символы и т. Д. Поэтому, как только вы используете их вне PHP, вы, вероятно, столкнетесь с проблемами.
Например, random_bytes()
создает такие строки.