Я наткнулся на эту строку кода в приложении, которое я пересматриваю:
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))
^ соответствует исходной позиции внутри строки. В линейных инструментах он соответствует исходной позиции любой строки.