per include oder require parameter übergeben
Marc
- php
Ist es möglich, per require parameter an die aufgerufene Seite zu übergeben, die normalerweise in der url stehen würden?
z.B. require (".../soundso.php?id=12344");
Oder gibt es eine Möglichkeit, falls das so nicht funktioniert, die das macht, wie ich es mir vorstelle?
By the way: Macht es einen Unterschied, ob ich require oder inlcude benutze? Hab jetzt schon in mehreren Quellen geguckt, aber nirgends was über explizite Einsatzgebiete gelesen...
Hallo Marc.
Ist es möglich, per require parameter an die aufgerufene Seite zu übergeben, die normalerweise in der url stehen würden?
Warum meinst du, dass dies erforderlich wäre?
Wenn du eine Datei foo.php hast:
echo 'Foo';
require 'bar.php';
echo 'Baz';
Und eine Datei bar.php:
echo 'Bar';
Dann hast du letztendlich nichts anderes als:
echo 'Foo';
echo 'Bar';
echo 'Baz';
Die zweite Datei wird lediglich eingebunden, hat damit also Zugriff auf Variablen in der Hauptdatei und umgeekehrt.
Du kannst also in bar.php eine in foo.php deklarierte Variable jederzeit nutzen. (Auf eine Abfrage auf Existenz dieser Variable solltest du aber dennoch nicht verzichten.)
By the way: Macht es einen Unterschied, ob ich require oder inlcude benutze? Hab jetzt schon in mehreren Quellen geguckt, aber nirgends was über explizite Einsatzgebiete gelesen...
Siehe PHP-Manual zu include und require:
„require() und include() sind in jeder Hinsicht gleichwertig mit der einen Ausnahme: der Umgang mit Fehlern. include() erzeugt ein Warning während require() in einem Fatal Error endet. Mit anderen Worten: scheuen Sie sich nicht, require() zu benutzen, wenn Sie möchten, dass eine fehlende Datei die Ausführung ihres Skripts beendet.“
Einen schönen Mittwoch noch.
Gruß, Ashura
Ich brauche es aus folgendem Grund:
Es gibt 2 Seiten, die der User selber aufrufen kann:
seite1.php
seite2.php
Beide sollen ohne Parameter aufgerufen werden.
Jetzt greifen aber seite1.php und seite2.php mittels require() auf seite_inc.php zu, die, gesteuert durch Parameter, verschiedene Inhalte dynamisch produziert. Eben diese Parameter muss Sie irgendwie erreichen...
Hallo Marc.
Es gibt 2 Seiten, die der User selber aufrufen kann:
seite1.php
seite2.phpBeide sollen ohne Parameter aufgerufen werden.
Soweit OK.
Jetzt greifen aber seite1.php und seite2.php mittels require() auf seite_inc.php zu, die, gesteuert durch Parameter, verschiedene Inhalte dynamisch produziert. Eben diese Parameter muss Sie irgendwie erreichen...
Warum legst du diese „Paramter“ dann nicht einfach in seite1.php und seite2.php als Variablen fest und fragst in seite_inc.php einfach die Existenz einer dieser beiden Variablen ab. Danach verarbeitest du den Inhalt dieser Variable wie gewohnt.
(Und um deine Frage konkret zu beantworten: Nein, Parameter können über das *Datei*system nicht übergeben werden. Es würde in der Tat nach einer Datei namens „soundso.php?id=12344“ gesucht.)
Einen schönen Mittwoch noch.
Gruß, Ashura
Hallo Marc.
Es gibt 2 Seiten, die der User selber aufrufen kann:
seite1.php
seite2.phpBeide sollen ohne Parameter aufgerufen werden.
Soweit OK.
Jetzt greifen aber seite1.php und seite2.php mittels require() auf seite_inc.php zu, die, gesteuert durch Parameter, verschiedene Inhalte dynamisch produziert. Eben diese Parameter muss Sie irgendwie erreichen...
Warum legst du diese „Paramter“ dann nicht einfach in seite1.php und seite2.php als Variablen fest und fragst in seite_inc.php einfach die Existenz einer dieser beiden Variablen ab. Danach verarbeitest du den Inhalt dieser Variable wie gewohnt.
(Und um deine Frage konkret zu beantworten: Nein, Parameter können über das *Datei*system nicht übergeben werden. Es würde in der Tat nach einer Datei namens „soundso.php?id=12344“ gesucht.)
Einen schönen Mittwoch noch.
Gruß, Ashura
Ok - dieser Gedanke hatte mir gefehlt - Ich bedanke mich.
Moin!
Jetzt greifen aber seite1.php und seite2.php mittels require() auf seite_inc.php zu, die, gesteuert durch Parameter, verschiedene Inhalte dynamisch produziert. Eben diese Parameter muss Sie irgendwie erreichen...
$param = 1; // oder 2
require('seite_inc.php');
Und fertig ist der Lack.
- Sven Rautenberg
Hi,
„require() und include() sind in jeder Hinsicht gleichwertig ...“
Das steht da? Ist nicht korrekt.
include() kann per return einen Wert zurückgeben. require() kann das nicht.
Gruß, Cybaer
Hallo Cybaer.
„require() und include() sind in jeder Hinsicht gleichwertig ...“
Das steht da? Ist nicht korrekt.
Ich habe nicht ohne Grund die wörtliche Rede gewählt.
include() kann per return einen Wert zurückgeben. require() kann das nicht.
Kann ich nicht bestätigen.
foo.php:
<?php
error_reporting(E_ALL);
echo "Foo\n";
echo require 'bar.php';
echo "Baz";
?>
bar.php:
<?php return "Bar\n"; ?>
Sowohl bei include als auch bei require wird das „Bar“ zurück gegeben.
Könntest du deine Aussage spezifizieren?
Einen schönen Donnerstag noch.
Gruß, Ashura
Hi,
Kann ich nicht bestätigen.
Oh, ja, tatsächlich. =:-)
Könntest du deine Aussage spezifizieren?
Dummerweise habe ich mich ungeprüft davon fehlleiten lassen, daß im (deutschen) Manual bei include() auf die Verwendung von return() hingewiesen wird, bei require() hingegen nicht.
*Gut*, daß ich von diesem Fehlglauben nun ab bin! =:-))
Gruß, Cy-"Gut, daß wir mal drüber gesprochen haben"-baer ;)