4

PHP で 2 つの変数の値を交換するために、次のコード スニペットを見つけました。

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

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

echo $a . $b;

バイナリの概念を理解しています。これは常に文字列で機能しますか? どのように?

4

1 に答える 1

6

PHP は、ビットごとの演算子を各文字に個別に適用することで、文字列に適用します。

PHP: ビット演算子:

データ型の変換に注意してください。左側と右側の両方のパラメータが文字列の場合、ビット単位の演算子は文字の ASCII 値を操作します。

これは、両方の文字列が同じ文字数、より正確には同じバイト数である場合に機能します。上記の引用が本当に正確である場合、それは ASCII のみの文字列に対してのみ機能する可能性があります。

于 2012-11-13T18:28:21.933 に答える