jol*_*olt 1 php bitwise-operators
看起来我之前的问题更新没有被注意到,因此是一个新问题.
#dump1
var_dump('two identical strings' | 'two identical strings'); # mind the |
// string(21) "two identical strings"
#dump2
var_dump('two identical strings' ^ 'two identical strings'); # mind the ^
// string(21) ""
Run Code Online (Sandbox Code Playgroud)
为什么#dump2显示长度== 21,但输出无/不可见符号?
另外,当粘贴在Notepad ++中时,该字符串中没有21个符号的迹象,实际上,甚至不是1个符号,而不是来自不同字符串的不同操作的输出. 
这些(DC3),(DC4)等没有在浏览器中显示,但在记事本中显示出来++.
哦,实际上,那个字符串中的那些黑色值是什么?我猜这些是位级/汇编级别的值,但是,呵呵,guess !== true.
对自身进行异或运算基本上将所有位设置为0.所以你有一个长字符串的x00字节,这是NUL字符,它在屏幕上没有可读的表示.对任何类型的字符串执行按位操作通常会导致相当随机的位序列无法在屏幕上显示为可读字符.您看到的随机黑色内容是Notepad ++尽力渲染字节序列.