Se quella variabile la definisci all'interno di una funzione, ha visibilita' locale esclusivamente. Cosi' non si capisce....
Se non entri nella if non farai mai l'aggiornamento di $ctrl. E se $ctrl non e' settato devi andare sulla parte dello script che lo valorizza, che non e' certamente questo che hai postato. In pratica serve vedere la partenza dalla var piu' che l'arrivo...