es simple, y no tiene que ver con php, sino el estándar HTTP y algo de HTML...
según la especificación de HTML, el simbolo & no puede aparecer así en el documento, osea que al escribir los enlaces debes usar & que sería su entidad equivalente... y esto solo aplica a los enlaces de hipertexto:
Código HTML:
<a href="?foo&candy=bar">link</a>
ahora, cuando lo usas para URLs internas, como por ejemplo una redirección entonces si debes usar & porque una cosa es que funcione en hipertexto como entidad, y otra muy distinta a nivel código:
Cita: document.location.href = '?foo&candy=bar';
PDTA: un poco de investigación y estudio no te hace daño...