字符串文本前面的 b 有什么作用?
$binary = b'Binary string';
创建一个字符串作为 inary 有什么后果?b
我在文档中找不到任何有关此的提示。只是在浏览language_scanner时发现了这个小小的好奇心。
$binary = b'Binary string';
创建一个字符串作为 inary 有什么后果?b
我在文档中找不到任何有关此的提示。只是在浏览language_scanner时发现了这个小小的好奇心。
这是从未发布的 PHP 版本 6 的正向兼容性令牌,该版本应该具有本机 unicode 支持。
在 PHP6 中,字符串默认为 unicode,函数在 unicode 字符级别运行。此“b”表示“二进制字符串”,即非 unicode 字符串,其上的函数在字节级别运行。
这在 PHP != 6 中没有影响,因为 PHP 中所有字符串都是二进制的。
二进制转换自 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"
?>