Ich arbeite daran, ein altes define() - basiertes Sprach-/Übersetzungssystem in ein flexibleres zu konvertieren (wahrscheinlich JSON-basiert, aber immer noch offen).Definiere PHP definiert?
Als Teil dieser Konvertierung muss ich von 42.php-Dateien mit mehreren tausend Strings in jedes Format konvertieren, das ich verwenden werde. Einige der definierten Strings verweisen auf andere Definitionen oder verwenden PHP-Code. Ich muss dieses dynamische Verhalten nicht beibehalten (es ist sowieso nie wirklich dynamisch), aber ich muss die "aktuellen" Werte zum Zeitpunkt der Konvertierung haben. One definieren könnte wie folgt aussehen:
define('LNG_Some_string', 'Page $s of $s of our fine '.LNG_Product_name);
Da alle definiert haben einen leicht erkennbaren ‚LNG_‘ Präfix, eine einzelne Datei konvertiert trivial ist. Aber ich möchte ein kleines Skript machen, das alle 42 in einem Lauf behandelt.
Idealerweise wäre ich in der Lage, define() 's entweder zu deefinieren oder neu zu definieren, aber ich finde keinen einfachen Weg, dies zu tun. Ist das überhaupt möglich?
Alternativ, was wäre eine gute Möglichkeit, diese Konvertierung zu handhaben? Das Skript wird einmalig sein, also muss es nicht wartbar oder schnell sein. Ich möchte nur, dass es vollständig automatisiert ist, um menschliche Fehler zu vermeiden.
Seit 'define' eine Konstante definiert per definitionem - du kannst es nicht "aufheben", weil es dann keine Konstante ist - es ist eine Variable. Und PHP hat seine variable Notation und alles andere, was mit der Arbeit mit Variablen zu tun hat. Lange Rede kurzer Sinn, Sie brauchen anscheinend keine Konstanten, Sie brauchen Arrays, um diese mehrsprachige Funktion auszuführen. –
@ N.B. Ich versuche genau das zu tun. Ich will keine Konstanten. Das Problem ist die einmalige Konvertierung von Konstanten in Array/do/json/ini/was auch immer. – Martijn