Warum nicht PHP-Konstanten-Objekt?

Habe ich ein Schlüssel-Wert-Datenbank-Tabelle, wo ich speichern einiger Einstellungen.

Ich würde gerne diese Einstellungen in einer PHP-Konstanten-Objekt, denn Sie sollen nicht bearbeitbar sein.

In PHP7 können wir jetzt tun:

define('MySettings', array(
    'title' => 'My title'
    //etc
));

//And call it with
echo MySettings['title'];

Und es funktioniert Super.

Aber warum kann ich nicht tun:

define('MySettings', (object) array('title' => 'My title'));

So, ich könnte es so nennen, statt:

echo MySettings->title;
//or
echo MySettings::title;

Dies ist nur, weil ich denke, es ist schneller und schöner zu geben als Objekt Eigenschaft/Konstante ($obj->key, $obj::key), als array ($array['key'])

Gibt es einen Grund dies nicht möglich ist?

  • denn technisch-Objekte KÖNNEN NICHT konstant sein. Sie können code enthalten, was bedeutet, dass die Interna eines Objekts kann geändert werden, das heißt, Sie sind nicht konstant. das ist, warum Sie haben Konstanten - es ist ein Versprechen/garantieren, dass das, was Sie die Dinge in die Konstante wird NIE geändert werden.
  • Es ist ein Vorschlag, der derzeit in der Diskussion für eine zukünftige version von PHP zur Unterstützung unveränderliche Objekte. Dies würde es ermöglichen, ein Programm zu erstellen ein Objekt mit einer Reihe von Werten, und diese Werte sind fest und unveränderlich, nachdem das Objekt erstellt wurde. Sie können mehr darüber Lesen Sie hier: wiki.php.net/rfc/immutability. Jedoch beachten Sie, dass es nicht in PHP jetzt (7.0), und es wird nicht in der kommenden Version 7.1 entweder. Je nachdem, wie die Gespräche gehen, es könnte in 7.2, aber es ist zu früh, um etwas Versprechen, auf das an dieser Bühne.
InformationsquelleAutor JemoeE | 2016-09-22
Schreibe einen Kommentar