Ho un problema con una funzione...

La funzione deve restituirmi un'immagine casuale con la base>dell'altezza da una cartella

Codice PHP:
function immagine ($dir$imm) {
    
$ran rand(0,count($imm));
        
$image$dir.$imm[$ran];
        
$size getimagesize($image); 
    
$x $size[0]; 
    
$y $size[1]; 
            
    if (
$x>=$y) return $image;                
    else 
immagine($dir$imm);    

dove $dir è la cartella, $imm è l'array con tutte le immagini della cartella ($dir lo uso solo per la comodità di aver restituito l'indirizzo completo dell'immagine, so che potrei usarlo fuori dalla funzione).

Se la condizione if è vera al primo passaggio tutto ok, mentre negli altri casi mi restituisce una stringa vuota.
Ho provato ad inserire degli echo per vedere come operava la funzione... la ricorsione è giusta, se trova un'immagine verticale ne cerca un'altra, ma quando trova quella orizzontale non mi restituisce il suo indirizzo.

Qualcuno mi può aiutare a risolvere il problema?