Können Sie Instanzeneigenschaften dynamisch in PHP erstellen?

Gibt es eine Möglichkeit zu schaffen, alle Instanz-Eigenschaften dynamisch? Zum Beispiel, ich möchte in der Lage sein zu generieren, werden alle Attribute im Konstruktor und noch in der Lage sein, um Ihnen den Zugang nach der Klasse instanziiert wird, wie diese: $object->property. Beachten Sie, dass ich für den Zugriff auf die Eigenschaften separat, und nicht mit einem array; hier ein Beispiel von dem, was ich nicht wollen:

class Thing {
    public $properties;
    function __construct(array $props=array()) {
        $this->properties = $props;
    }
}
$foo = new Thing(array('bar' => 'baz');
# I don't want to have to do this:
$foo->properties['bar'];
# I want to do this:
//$foo->bar;

Um genauer zu sein, wenn ich den Umgang mit Klassen, die eine große Anzahl von Eigenschaften, ich würde gerne in der Lage, wählen Sie alle Spalten in einer Datenbank (das sind die "Eigenschaften") und erstellen Sie eine Instanz Eigenschaften von Ihnen. Jeder Spaltenwert gespeichert werden soll, in einer separaten Instanz-Eigenschaft.

Kommentar zu dem Problem
Das array und die __set und __get-Methoden sollten ausreichend sein, für normale Zwecke. Haben Sie Besondere Anliegen-stick "one property=eine variable" Lösung? BTW, das Prinzip der Kapselung bestimmt kein anderes Objekt sollte wissen, wenn die variable ist ein echtes oder ein Wert in einem array? Nicht einmal Gegenstände durch die Erweiterung dieser Datenbank. Kommentarautor: Csaba Kétszeri

InformationsquelleAutor der Frage Brayn | 2009-05-06

Schreibe einen Kommentar