PHP php include

karottenkopp

Well-known member
26 Januar 2010
78
9
Hallo,

ich habe mal eine Frage und hoffe mir kann jemand weiterhelfen...

ich bin ein ziemlicher Noob was programmieren an sich angeht, das wird man auch jetzt merken also bitte nicht steinigen :)

Ich hab eine Datei "index.php" -> eine Art Schablone für Faulpelze, wie mich.

in der ich einzelne Datein per "include" ,welche in Ordnern mit dem jeweiligen Dateinamen liegen

Datei "index.php" -> Ordner "index"

Wenn ich in der Datei jetzt eine Variable definiere

Bsp:

Code:
$page = "index";

Wie kann ich dies dann nutzen um zum Besispiel diese definierte Variable in dem include-Befehl zu verwenden, also wie muss dies dann im Code ausschauen.

Code:
$page = "index";

include  ("include/$page/menu/menu.php");

Ich komm da mal eben gar nicht klar und finde da auch nicht wirklich was, vielleicht such ich aber auch einfach nur falsch, wäre nett wenn mir jemand weiterhelfen könnte.

Andreas

PS: bitte nicht bös sein wenn nicht gleich ein "Danke schön..." kommt, bin zur Zeit im Genesungsstress...
 
Moin.

Ich seh das Problem ned. Die Lösung hast du ja schon im unteren Codeblock stehen.
 
Hallo,
...
Datei "index.php" -> Ordner "index"
...
Bsp:

Code:
$page = "index";

include  ("include/$page/menu/menu.php");

...

Andreas

PS: bitte nicht bös sein wenn nicht gleich ein "Danke schön..." kommt, bin zur Zeit im Genesungsstress...

Code:
$page = "wasauchimmer";
$p_dir = "";  // oder "include/" # primary_dir art suffix
$s_dir = "";  // oder "menu/" # secondary_dir art prefix
include ( $p_dir.$page."/".$s_dir.$page.".php" );

Eventuell sowas ?
Wozu soll es denn überhaupt dienen ?
 
liro:
entweder schreibst du "" im include oder ''.
Du solltest dich mal entscheiden, wenn du meinst, meines wäre falsch :ugly:

sehe ich in sein post, da steht aber die beschreibung genau so drin !!!
Lies nochmal genau durch liro !!!
 
liro:
entweder schreibst du "" im include oder ''.
Du solltest dich mal entscheiden, wenn du meinst, meines wäre falsch :ugly:

Ich meinte nicht, dass es falsch sei. Ich meinte, dass, wenn man " benutzt, gleich die Variablen in den String schreiben kann oder gleich ' nimmt und das "per Hand" verbindet.
 
Ich meinte, dass, wenn man " benutzt, gleich die Variablen in den String schreiben kann oder gleich ' nimmt und das "per Hand" verbindet.
Korrekt. Zwischen '...' werden Escapesequenzen und Variablen nicht geparst; zwischen "..." schon.
PHP:
$foo = "$p_dir/$s_dir$page.php";
würde ich aber dennoch nicht machen, weil man das beim Lesen mit
PHP:
$foo = "$p_dir/".${"s_dir$page"}.".php";
verwechseln kann.
 
PHP:
$foo = "$p_dir/$s_dir$page.php";
würde ich aber dennoch nicht machen, weil man das beim Lesen mit
PHP:
$foo = "$p_dir/".${"s_dir$page"}.".php";
verwechseln kann.

Kann sein, hab mir die Schreibweise mit "..." gleich am Anfang, wo ich PHP gelernt hatte abgewöhnt. Will selber kontrollieren können was in meinen Strings ersetzt wird und was nicht. Und schneller soll's ja auch sein, hab ich gehört :mrgreen:
 
also ich hatte gelernt, "" benutze ich be string und '' bei char. mag sein dass ich dies aus C++ her so in meinem Kopf habe.
Fehler produziert es nicht.

Schneller solls sein ?
 
Zuletzt bearbeitet:
also ich hatte gelernt, "" benutze ich be string und '' bei char. mag sein dass ich dies aus C++ her so in meinem Kopf habe.
Fehler produziert es nicht.
Das is falsch. Ja, bei C++ is das so.

Wenn du aber mal versuchst n Newline einzeln auszugeben und machst
PHP:
echo '\n';
, wirst du schnell merken, dass das Mist is.

"..." wenn Escapesequenzen oder zu parsende Variablen drin sind. '...' wenn keine Escapesequenzen oder zu parsende Variablen drin sind oder du Backslashes oder Dollarzeichen ausgeben willst.

Ob man im Mischfall jetzt lieber "..." + Escaping oder '...' + Konkatenation macht, bleibt dem persönlichem Stil überlassen.
 
Sofern du keine Variablen in dem String hast, wird wieder umsonst geparst.

theoretisch hast du vollkommen Recht, praktisch ist die PHP-Runtime einn, neija ich vergleich mir liebe jede Aussage :ugly:
Praktisch sieht es so aus, dass von PHP-Version zu PHP-Version mal ' oder " schneller ist, zwar dürften double quotes nie schneller sein, und es sind auch nur Microbenchmarks und haben somit keinen realen Einfluss, aber komisch ist das Verhalten schon.
 
Da stimm ich Dir auch zu Ice.
Man kann leider nicht genau sagen was schneller ist.
Sicher ist jedenfalls ein "" als ein ''.
So hab ich es mir jedenfalls angewöhnt.
Sei auf der sicheren Seite 8O

Sofern du keine Variablen in dem String hast, wird wieder umsonst geparst.

Mit dieser Aussage gwürden also nicht alle Strings geparst, obwohl laut Spezifikation ein String in php mit "" abzugrenzen ist.
Somit würde PHP ja selbst jeden einzelnen Textstring parsen, auch wenn keine $var drin vorkommt.
Wäre das nicht ein ziehmlich sinnloser vorgang unverschwendung von CPU ?

Denke nicht das die Entwickler sowas machen
 
Zuletzt bearbeitet:
...Sicher ist jedenfalls ein "" als ein ''.
So hab ich es mir jedenfalls angewöhnt.
Sei auf der sicheren Seite 8O...
Na klar. Ein Parsen ist ja auch sicherer als ein Anzeigen.

Ist schon toll, wenn als Beispiel sowas rauskommt:
PHP:
echo "ich bin $efpasswort";
Auf jeden Fall sicherer als
PHP:
echo 'ich bin $efpasswort';
:roll:

...Somit würde PHP ja selbst jeden einzelnen Textstring parsen, auch wenn keine $var drin vorkommt.
Bei " wird immer geparsed, das ist nun mal so.

Kann man den dämlich-Spruch hier auch nehmen?

...unverschwendung...
Soll das Deutsch sein? Was ist eine Unverschwendung bitte?
 
Mit dieser Aussage gwürden also nicht alle Strings geparst, obwohl laut Spezifikation ein String in php mit "" abzugrenzen ist.
Es gibt keine Spezifikation, mit welcher der vorhandenen Möglichkeiten ein String konkret in PHP abzugrenzen wäre:
https://www.php.net/manual/language.types.string.php schrieb:
A string literal can be specified in four different ways:

* single quoted
* double quoted
* heredoc syntax
* nowdoc syntax (since PHP 5.3.0)
Kannste also halten wie'n Dachdecker und ist somit (wie tH schon anmerkte) persönliche Vorliebe.
 
Sicher ist jedenfalls ein "" als ein ''.
So hab ich es mir jedenfalls angewöhnt.
Sei auf der sicheren Seite 8O
das ist nicht sicher, das ist einfach eine Methode zu bevorzugen, weil man jegliches Denken beim Programmieren abgeben möchte und einfach Standardweg a folgt, um möglichst wenige Fehler zu machen, weil man mal vergessen hat " statt ' zu benutzen, wenn Variablen im String vorkommen.


'Use the right quotes for the job'
ice


Wenn ich weiß, dass in einem String nichts geparsed werden muss, dann nutze ich Single Quotes, könnte man Semantik beim Programmieren nennen :ugly: