Ответ 1
Это побитовый оператор.
Пример:
"hallo" ^ "hello"
Он выдает значения ASCII #0
#4
#0
#0
#0
('a'
^ 'e'
= #4
).
Я наткнулся на эту строку кода в приложении, которое я пересматриваю:
substr($sometext1 ^ $sometext2, 0, 512);
Что означает ^
?
Это побитовый оператор.
Пример:
"hallo" ^ "hello"
Он выдает значения ASCII #0
#4
#0
#0
#0
('a'
^ 'e'
= #4
).
$a ^ $b означает, что биты, которые установлены в $a или $b, но не оба, установлены.
^
является побитовым эксклюзивным оператором OR. Для каждого бита в значении он смотрит, будет ли этот бит одинаковым в другом значении; если это то же самое, на его месте выводится 0, иначе выдается 1. Например:
00001111
^ 01010101
--------
01011010
Это оператор XOR (эксклюзивный или). Для строк он используется как простое шифрование.
В PHP ^
означает "побитовый XOR". Ваш код XOR объединяет две строки, а затем возвращает не более первых 512 символов.
Другими словами, он делает это:
return (at most the first 512 characters of (someText1 XOR someText2))
Что побитовый оператор OR - в PHP, это также относится к строкам.
^
соответствует исходной позиции в строке. В линейных инструментах он соответствует исходной позиции любой строки.