Es que eso del cache son cabeceras que tiene que enviar. Cabeceras=header, pr eso se comportan igual. Y lo mismo pasa con setcookie(). Las cookies tambien se mandan al navegador mediante cabeceras.
Y sobre lo del foreach, es que necesita que el parametro sea un array. Y "" no es un array. Para solucionarlo lo que tienes que hacer es asignarle un array vacio, con:
Código PHP:
$_SESSION['itemsEnCesta']=array();
Saludos.