Согласно PHP manual
"|" является «побитовым ИЛИ». Побитовые операторы позволяют оценивать и манипулировать определенными битами внутри целого числа.
Example Name Result
$a | $b Or (inclusive or) Bits that are set in either $a or $b are set.
Пример:
$a = 9;
$b = 10;
echo $a | $b;
Это выведет число 11 следующим образом:
1 Byte (8 bits)
Place Value 128 64 32 16 8 4 2 1
$a 0 0 0 0 1 0 0 1 = 9
$b 0 0 0 0 1 0 1 0 = 10
$a | $b 0 0 0 0 1 0 1 1 = 11
Если вы заметили, мы 3 бита установлены, в 8, 2 и 1 столбец .. добавьте их до 8 + 2 + 1, и вы получите 11.
Для простой конкатенации строк используйте оператор dot.
Надеюсь, что это разъясняет.
http://www.php.net/manual/en/language.operators.bitwise.php –
на каком языке '' 'concatenate? –
Насколько я знаю, большая часть языка не использует '|' для concat string. Обычно используется '.' Или '+' – Rezigned