PHP代码中的管道签名
我想连接两个变量,但由于错误,我输入了另一个代码,得到了一个奇怪的结果 下面是代码:PHP代码中的管道签名,php,Php,我想连接两个变量,但由于错误,我输入了另一个代码,得到了一个奇怪的结果 下面是代码: echo 'Hello World' | 'test'; Result : |e|o World 如果不连接管道符号,管道符号会做什么?它是或按位运算符 如果你想压缩字符串,你应该使用dot echo "ABC" . "DEF"; 或按位使用示例 // base 16 - result in 0x03 $result = 0x01 | 0x02; // base 2 0000 0001 0000 001
echo 'Hello World' | 'test';
Result : |e|o World
如果不连接管道符号,管道符号会做什么?它是
或
按位运算符
如果你想压缩字符串,你应该使用dot
echo "ABC" . "DEF";
或
按位使用示例
// base 16 - result in 0x03
$result = 0x01 | 0x02;
// base 2
0000 0001
0000 0010
---------
0000 0011
我猜它是一个按位OR,意思是“按位OR”,它将字符串转换成二进制,然后将它们相互叠加,以使用逻辑OR计算每个位置的结果,即,如果任一字符串在该位置有一个1,则结果将有一个1,否则,您将得到一个0 在本例中,它使用每个字符的数字ascii字符代码来执行此操作,这有时会导致新的字符代码,有时会导致无法渲染的垃圾。这就是为什么“Hello world”的开头很混乱,上面覆盖了“test”,但结尾很好,因为在这一点上没有任何1被另一个字符串添加到它。请参阅手册中更详细的示例(使用XOR,但思路相同) 使用。用于连接。根据 “|”是一个“按位OR”。逐位运算符允许计算和操作整数中的特定位
Example Name Result
$a | $b Or (inclusive or) Bits that are set in either $a or $b are set.
例如:
$a = 9;
$b = 10;
echo $a | $b;
这将输出数字11,如下所示:
1 Byte ( 8 bits )
Place Value 128 64 32 16 8 4 2 1
$a 0 0 0 0 1 0 0 1 = 9
$b 0 0 0 0 1 0 1 0 = 10
$a | $b 0 0 0 0 1 0 1 1 = 11
如果您注意到我们在8、2和1列中设置了3位。。把这些加起来就是8+2+1,得到11
对于纯字符串连接,请使用点
运算符
希望能澄清。用什么语言连接?据我所知,大多数语言不使用
连接字符串。通常它使用
或+
@billymon-Oracle使用双栏:|
可能的超级复制方式让我理解。。我很困惑为什么1 | 1=2,1 | 3=3?你教得很好。上帝保佑你:)