Qual é a diferença entre o | e || ou operadores?

Eu sempre usei|| (dois canais) nas expressões OR, tanto em C # quanto em PHP. Ocasionalmente, vejo um único tubo usado:|. Qual é a diferença entre esses dois usos? Existem advertências ao usar um sobre o outro ou são intercambiáveis?