Pas bête, en effet. Mais is_object() peut répondre "vrai" alors que l'objet est vide.
Pourquoi pas empty() ?