Scriptstücke auslagern
yens
- programmiertechnik
Hi,
ich bin in einer PHP-Anwendung in der Situation, einen größeren Teil Script (ca. 2 Monitorhöhen) mehrmals zu benötigen.
In eine Funktion schreiben ist aber nicht, da auf sehr viele Variablen zugegriffen wird, die der Compiler dann nicht findet, weil sie ausserhalb des Scriptstücks deklariert werden.
Ist es nun "modisch", die Scriptstücke in eine separate Datei auszulagern und mit include einzubinden?
Oder soll ich auf die Auslagerung verzichten und das Scriptstück lieber doppelt in die Datei setzen. Dann hätte ich auch das Problem, bei Änderungen doppelt ändern zu müssen bzw. laufe immer Gefahr, dass die beiden nicht synchron sind.
Gruß
Jens
Hallo yens,
2 Monitorhöhen
coole Einheit!
... Dann hätte ich auch das Problem, bei Änderungen doppelt ändern zu müssen bzw. laufe immer Gefahr, dass die beiden nicht synchron sind.
schon deshalb würde ich es auslagern.
In eine Funktion schreiben ist aber nicht, da auf sehr viele Variablen zugegriffen wird, die der Compiler dann nicht findet, weil sie ausserhalb des Scriptstücks deklariert werden.
doch, das geht mit global.
Alex
Hello,
doch, das geht mit global.
Von PHP hatte yens aber nix geschrieben. Oder habe ich das überlesen?
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hallo Tom,
Von PHP hatte yens aber nix geschrieben. Oder habe ich das überlesen?
Zitat yens:
ich bin in einer PHP-Anwendung [...]
^^^
Alex
Hello Alex,
Von PHP hatte yens aber nix geschrieben. Oder habe ich das überlesen?
Zitat yens:
ich bin in einer PHP-Anwendung [...]
Entschuldige bitte.
Habe ich es doch überlesen.
Jaja, das Alter der Augen und keine Krankenkasse im Moment :-((
Genug der Ausreden,
dann darf man ja auch ruhig "Array" sagen
https://forum.selfhtml.org/?t=160540&m=1044190
denn andere selbstdefinierte Datenstrukturen unterstützt das prozedurale PHP ja doch nicht wirklich
OK, es gibt noch pack() und unpack() und ich bevorzuge manchmal noch eine Stringansammlung oder ein "Array of String", aber das ist nicht wirklich programmiererfreundlich bei PHP
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hello,
und jetzt habe ich doch glatt vergessen, auf "PHP" umzuschalten...
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hallo Jens,
In eine Funktion schreiben ist aber nicht, da auf sehr viele Variablen zugegriffen wird, die der Compiler dann nicht findet, weil sie ausserhalb des Scriptstücks deklariert werden.
Dann solltest du den Aufbau deines Programms überdenken. Globale Variablen solltet man auf ein Minimum reduzieren und innerhalb von Funktionen am besten gar nicht darauf zugreifen, sondern die entsprechenden Daten als Funktionsargumente zu übergeben.
Achim Schrepfer hat übrigens einen Feature-Artikel zu dieser Problematik geschrieben: "Entwicklung wiederverwendbarer Software".
Schöne Grüße,
Johannes
Hallo,
ich bin in einer PHP-Anwendung in der Situation, einen größeren Teil Script (ca. 2 Monitorhöhen) mehrmals zu benötigen.
In eine Funktion schreiben ist aber nicht, da auf sehr viele Variablen zugegriffen wird, die der Compiler dann nicht findet, weil sie ausserhalb des Scriptstücks deklariert werden.
ich würde dir empfehlen, den Aufbau deiner Anwendung zu überdenken. Eine mögliche Lösung deines aktuellen Problems z.B. ist wahrscheinlich möglich. Es ist aber sehr wahrscheinlich, das du bald wieder auf Probleme stößt.
Versuche, die Aktionen in kleine Einheiten zu unterteilen, die man in Funktionen unterteilen kann.
Noch besser wäre es wahrscheinlich, eine objektorientierte Analyse durchzuführen, und die Anwendung objektorientiert zu realisieren.
Gruß
Stareagle
Hello,
In eine Funktion schreiben ist aber nicht, da auf sehr viele Variablen zugegriffen wird, die der Compiler dann nicht findet, weil sie ausserhalb des Scriptstücks deklariert werden.
Ich würde in einem solchen Fall immer einen Zeiger auf einen Variablenblock übergeben.
In allen mir bisher bekannten Programmiersprachen (des täglichen Gebrauchs) geht das ganz komplikationslos.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hi,
meinst du mit Variablenblock, ich soll alle benötigten Variablen in ein Array tun?
Oder heisst das was anderes? Wenn ich das richtig verstanden habe, werden Variablen ja normalerweise kopiert, während bei übergebenen Arrays nur der Zeiger übermittelt wird und die Funktion das Original bearbeitet.
Schöne Grüsse,
Jens
Hello,
meinst du mit Variablenblock, ich soll alle benötigten Variablen in ein Array tun?
Jein...
Ich meine, dass Du alle benötigten Variablen, die zusammengehören, in eine Datenstruktur packen sollst. Deren Zeiger kannst Du dann an die Funktionen übergeben.
Falls nötig, kannst Du den zur Struktur gehörigen Speicherbereich auch vorher nochmal kopieren und den Zeiger der Kopie übergeben.
Ein Array ist eigentlich in der Nomenklatur der Datentechnik schon eine Stufe größer, nämlich die Anreihung gleicher oder zumindest gleichartiger Datenstrukturen in wiederkehrender Folge.
Oder heisst das was anderes? Wenn ich das richtig verstanden habe, werden Variablen ja normalerweise kopiert, während bei übergebenen Arrays nur der Zeiger übermittelt wird und die Funktion das Original bearbeitet.
siehe oben...
so nebenbei fällt mir noch ein:
Beton: kommt darauf an, was man daraus macht *ggg*
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom