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