7.27 Objekte dynamisch instantiieren

Problem

Sie wollen ein Objekt instantiieren, kennen den Namen der Klasse aber erst zur Laufzeit. Beispielsweise möchten Sie Ihre Seite lokalisieren, indem Sie ein Objekt instantiieren, das einer bestimmten Sprache entspricht. Welche Sprache gewählt werden soll, erfahren Sie aber erst, wenn die Klasse angefordert wird.

Lösung

Geben Sie den Klassennamen über eine Variable an:

$sprache = $_REQUEST['language'];
$sprachen = array('en_US' => 'US English',
                  'en_UK' => 'British English',
                  'es_US' => 'US Spanish',
                  'fr_CA' => 'Canadian French');

if (isset($sprachen[$sprache]) && class_exists($sprache)) {
    $sprache = new $sprache;
}

In PHP-Versionen ab 5.3 haben Sie die Möglichkeit, von Namensräumen Gebrauch zu machen. Sollten ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.