在PHP中,您可以(从PHP 5.2.1开始)使用"二进制字符串":
$binary = (binary) $string;
$binary = b"binary string";
与"正常"字符串有什么区别
我能找到的唯一有意义的见解是这样的评论:
然而,它只会在PHP 6.0.0之后生效,如上所述http://www.php.net/manual/en/function.is-binary.php。
链接已断开。事实上,在开发PHP 6.0时在PHP中添加二进制字符串是有道理的,因为6.0应该提供Unicode支持。所以这是一个不成熟的特征。
然而,是否有官方消息来源可以证实这一点?也就是说,确认经典字符串和二进制字符串之间绝对没有区别吗?
我没有任何官方来源来支持这一点,但我相信原因很简单:
目前的PHP将字符串视为字节数组,即原始二进制Blob。PHP6被认为是一个伟大的新版本,它最大的改进是原生Unicode处理。在这一点上,字符串文字实际上会被理解为字符串,而不是字节字符串。许多字符串处理函数会因此而中断,并且需要对许多代码进行改装才能继续在PHP6中工作。
作为迁移路径,字符串可以声明为二进制字符串以保持当前行为。这是在早期添加的,目的是让开发人员有足够的时间准备代码以实现PHP6兼容性。目前b
什么都不做,更改后的行为只会显示在PHP6中。
PHP 6从未发生过,现在已经死了。因此,b
目前仍然没有任何作用,目前还不确定它是否会在未来有任何特定用途。