Ragazzi c'è qualcosa che mi sfugge

Per il controllo di alcuni campi, parecchi campi, uso questo sistema:
codice:
    $errore = 0;
    $campo_nome = array('username','password','rip-password','nome',
      'cognome','indirizzo','citta','cap',
      'email','cf','telefono','tos','privacy');
    for ($index=0; $index <= count(campo_nome); $index++)
         if ($_POST['$campo_nome[$index]'] == "") {$errore = 1; break;}
in pratica passando i valori con POST essi vengono iterati uno per volta secondo il nome del campo (è lo stesso del form ovviamente), se uno di questi campi è vuoto il campo $errore viene messo a 1 e il ciclo si ferma.
Quindi subito sotto c'è il classico controllo: se $errore != 0 allora fa i questo.

Ora i nomi dei campi sono giusti, i campi li riempio io quindi so che sono pieni, e il programma va immediatamente a mettere &errore = 1. E lo fa subito dal primo campo.
Mentre se i campi sono vuoti, non lo fa. Cioè si comporta al contrario di come dovrebbe.

E non capisco perché o meglio dove sia l'errore