echo 'https://www.tehplayground.com/' | '/';结果见“ottps://www.tehplayplan.com/”。
为什么?
发布于 2022-08-04 01:54:59
这要归功于按位或运算符。它将每个字符串解释为二进制,并执行操作。
01101000 // 'h'
00101111 // '/'
-- OR --
01101111 // 'o'^查看第一个字符
进一步解释
PHP似乎循环遍历字符串的每个字符,并对其应用按位运算符。
所以实际发生的事情更像是:
"h" | "/" -> "o"
"t" | "" -> "t"
"t" | "" -> "t"
"p" | "" -> "p"
...按位操作中的任何空字符串最终都将是二进制中的所有0,因此,如果我们只看前两个字符进行比较
// character at index [0]
"h" -> 01101000 (104)
"/" -> 00101111 (47)
-- OR --
"o" -> 01101111 (111)
// character at index [1]
"t" -> 01110100 (116)
"" -> 00000000 (0)
-- OR --
"t" -> 01110100 (116)https://stackoverflow.com/questions/73229439
复制相似问题