funkcja zwraca to co zmienna $pdo
Jest to obiekt PDO ... czymkolwiek on jest, no pokazuje Ci błąd dlatego że w sygnaturze funkcja nie zwraca nic natomiast w PHP jako że to język skryptowy nie jest typowany statycznie więc, chociaż tutaj nie ma wymogu na to, aby wskazywać sygnaturę zwracania
new PDO($dsn, $this->username, $this->password);
to nie jest String dlatego wskazuje bląd