Ma che te ne fai dell'istanza della classe che gia` avrai perche` la crei?
A te serve semplicemente un:
$dbh = new PDO($dns, $usr, $pwd);
return $dbh;

e poi lavori con $dbh-><metodi/prop tuoi dentro la classe>.


Visto che l'oggetto del trhead e` quello giusto, ne approfitto invece per un'altra domanda che semmai metto in titolo a parte:

in una connessione PDO persistente, come
$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_PERSISTENT => true));
e` un problema se a fine script c'e` un
set $dbh=NULL ?

E su connessioni non persistenti? Meglio lasciare che il... chiamiamolo garbage collector, si arrangi a chiudere la connessione da solo a fine script o meglio chiusura esplicita? In caso ci sia un buon sistema di cache con chiusura esplicita magari si viene tagliati fuori dall'ottimizzazione.