交换两个变量的XOR技巧如何真正起作用?

时间:2012-11-13 18:22:01

标签: php operators

我刚刚浏览了这段代码,用于交换PHP中两个变量的值:

<?php
$a = ‘bar’;
$b = ‘foo’;

$a = $a ^ $b;
$b = $a ^ $b;
$a = $a ^ $b;

echo $a . $b;

我理解二进制的概念;这总是适用于字符串吗?怎么样?

1 个答案:

答案 0 :(得分:5)

PHP通过将字符串运算符单独应用于每个字符来将其应用于字符串。

PHP: Bitwise Operators

  

请注意数据类型转换。如果左侧和右侧参数都是字符串,则按位运算符将对字符的ASCII值进行操作。

如果两个字符串具有相同的字符数,或者更准确地说是相同的字节数,则这将起作用。如果以上引用确实精确,那么它可能仅适用于仅ASCII字符串。