Q:

Erro PDO - Call to a member functio on null

Criei uma função para fazer uma consulta no BD e retornar um Usuário a partir da variável $nome passado por parâmetro, porém, ao testa-la ela entra no else, alguém saberia onde esta o erro? 
Obs.:  A conexão do PDO está funcionando e existe um usuário com o nome do teste dentro do BD. 
Função:
public static function obtemUsuarioPorNome($db,$nome){
        $stmt = $db->prepare("SELECT id,nome,senha FROM usuarios WHERE nome = :nome");
        $stmt->bindParam(":nome", $nome);
        $stmt->execute();
        if($row = $stmt->fetch(PDO::FETCH_ASSOC) == $nome){
            extract($row);
            $usuario = new Usuario($id,$nome,$senha);
            return $usuario;
        } else {
            return null;
        }
    }

Código de teste:
$objUsuario = Usuario::obtemUsuarioPorNome($dblink,"barba-ruiva");
print("<p>".$objUsuario->getNome()." " .$objUsuario->getId()."</p>");

A:

Você não pode comparar o NOME com o resultado do FETCH_ASSOC, pois este, retorna para a variável ROW, um array associativo contendo os dados de resposta do SELECT. 
public static function obtemUsuarioPorNome($db,$nome) {
   $stmt = $db->prepare("SELECT id,nome,senha FROM usuarios WHERE nome = :nome");
   $stmt->bindParam(":nome", $nome);
   $stmt->execute();
   $row = $stmt->fetch(PDO::FETCH_ASSOC);
   if(count($row) > 0) {
      // extract($row);
      $usuario = new Usuario($row["id"], $row["nome"], $row["senha"]);
      return $usuario;
   } else {
      return null;
   }
}

