$binary = b'Binary string';
将字符串创建为b
inary会产生什么后果?
我在文档中找不到任何关于此的提示。通过language_scanner查看这个小小的好奇心。
答案 0 :(得分:21)
这是永远不会发布的PHP版本6的前向兼容性令牌,它应该具有本机unicode支持。
在PHP6中,字符串默认为unicode,函数在unicode字符级别上运行。这个“b”表示“二进制字符串”,即一个非unicode字符串,函数在字节级操作。
这对PHP!= 6没有影响,其中所有字符串都是二进制的。
答案 1 :(得分:1)
二进制强制转换自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"
?>
答案 2 :(得分:-1)
转换为字符串
$binary = preg_replace('/[[:^print:]]/', '', $binary);