ShiNtoKu: Frage zur "include_once" Anweisung

Beitrag lesen

Hallo,

OK, habe ich verstanden.

Ich glaube, nicht ganz *g*

Dann bezieht sich das ganze also nur auf diese eine Datei.

Nicht zwingend auf _eine_ Datei, sondern alle, die zur Ausführung eingebunden werden.
Du hast beispielsweise eine 'index.php' die der User über den Browser anfordert. In dieser Datei bindest du einige weitere Dateien über include/require(_once), beispielsweise Klassendefinitionen, besagte Arrays oder weiss der Henker ;) Möglicherweise binden diese Dateien weitere ein, und so weiter und so fort.
Angenommen, du includest in jeder dieser Dateien per include_once ein und dieselbe Datei, so wird diese insgesamt trotzdem nur einmal eingebudnen, nämlich beim ersten include_once.

Benötige ich dann include_once nur, wenn in einer php-Datei mehrere includes vorhanden sind und ich vermeiden will, dass die über inclue_once includierte Datei zwei mal in dieser einen php-Datei includiert wird?

Exakt. Wobei du bei der Entwicklung dennoch darauf achten solltest, dass nicht mehrere includes derselben Datei vorhanden sind. Es mag bestimmte Situationen geben, wo sich dies nicht vermeiden lässt, in der Regel jedoch schon.

Also müsste ich dann bei der erstmaligen Auswahl der Sprache diese in die Session schreiben, in jeder php-Datei prüfen ob der User inzwischen eine neue Sprache ausgewählt hat [...]

Wie du die Sprachinformation mitführst ist an dieser Stelle irrelevant. Das kann über eine Session-Variable geschehen, oder du übergibst die Information über die URL, ...

Entscheidend ist zunächst nur, was du mit der Sprachinformation anfängst. Dies könnte beispielsweise durch einen switch zu Beginn des Skriptes realisiert werden.

Sorry, das sind wahrscheinlich Anfängerfragen, aber ich bin auf dem Gebiet auch noch Anfänger.

Das Forum ist dazu da, Fragen zu stellen ;)

Wie findest Du den Vorschlag von Jeena Paradies bezüglich den Sprachdateien?

Es ist eine Möglichkeit, welche du verwendest hängt von verschiedenen Faktoren ab.

Was ist performanter? Die Textbausteine in einem Array zu halten oder für jeden Textbaustein eine eigene Variable deklarieren?

Eigene Variablen pro Baustein wäre unsinnig. Was aber durchaus sinnvoll ist, wäre pro Baustein nicht eine Variable, sondern eine Konstante zu definieren, was aber wiederum nur für Textbausteine greift, die nicht zur Laufzeit geändert bzw. ergänzt werden (z.B. durch Datenbankinhalte).
Ebenfalls ist es möglich, die Bausteine in einer Datenbank zu speichern, was bei größeren Projekten mögliche Wartungsarbeiten vereinfacht. Bei kleineren Projekten wäre eine Datenbanklösung allerdings ein "overkill", im Endeffekt arbeitest du in dem Fall ohnehin wieder mit Arrays.

In deinem Fall bist du mit Arrays (oder Konstanten, je nach Veränderbarkeit der Informationen) IMHO am besten beraten.

Viele Grüße
Patrick

--
"Though this be madness, yet there's method in't."
sh:( fo:| ch:? rl:( br:^ n4:( ie:{ mo:) va:} de:> zu:) fl:| js:( ss:| ls:[