Das PHP Tag hat er wohl genutzt weil DOMDocument eine Klasse aus der "DOM" Erweiterung von PHP ist.
Warum new DOMDocument()
bei Dir in einer Klasse abraucht und keinen Fehler schmeißt, kann man jetzt nur raten, da wir den Rest deiner Anwendung nicht kennen und nicht wissen, wie dein Fehlerhandling allgemein tickt.
Einer meiner Lieblingsfehler in dem Zusammenhang ist, namespaces zu verwenden und dann bei PHP Komponenten den vorangestellten Backslash zu vergessen, dann findet er sie nicht. Aber es rappelt dann immer ganz laut und deutlich.
Wenn es dir darum geht, den charset-Eintrag aus dem Content-Type Metatag zu isolieren, würde ich Dir zu einer Regex raten.
Rolf