Avatar billede palito Nybegynder
07. december 2006 - 15:13 Der er 6 kommentarer

Include eller include_once?

Hvilke af følgende linjer er 'bedst' (og skal det være 'include' eller 'include_once')?

include_once("{$_SERVER['DOCUMENT_ROOT']}/test.php");
include_once($_SERVER['DOCUMENT_ROOT'] . "/test.php");
Avatar billede showsource Seniormester
07. december 2006 - 15:23 #1
de er vel lige gode, dog behøver du jo ikke {}

include_once() sørger for at kun include filen en gang.
Altså, hvis du kommer til at include filen en gang mere, vil det bare blive ignoreret.
Avatar billede palito Nybegynder
07. december 2006 - 17:38 #2
Jamen hvilke af linjerne er hurtigst? Jeg kan godt lide at adskille variablerne med {}
Avatar billede kimols1 Nybegynder
07. december 2006 - 19:27 #3
tror ikk du vil mærke nogen forskel
Avatar billede scr Nybegynder
09. december 2006 - 01:08 #4
At bruge Enkelte citationstegn er altid hurtigere end dobbelte citationstegn da PHP derfor ikke skal "løbe hele teksten igennem". PHP skal derfor ikke lede imellem '' efter variabler etc.

F.eks.
$foo = 'noget';
echo '$foo bar'; //giver "$foo bar"
echo "$foo bar"; //giver "noget bar"

Det er endvidere altid bedst at bruge include_once, hvis du er usikker på om flere scripts (i samme "fortolkning") kunne prøve at inkludere den samme fil. Er du derimod sikker på dette ikke er tilfældet, er det ikke nødvendigt.

Derfor vil jeg mene at det mest optimale må siges at være:
include($_SERVER['DOCUMENT_ROOT'] . '/test.php'); (eller include_once)

Og til showsource, så behøver man skam tuborgklammer hvis man vil smide en variabel ved ved siden af ren tekst inde i dobbelte citationstegn:
include_once("$_SERVER['DOCUMENT_ROOT']/test.php"); Vil altså ikke virke, og vil resultere i en syntax error.
Avatar billede showsource Seniormester
09. december 2006 - 06:43 #5
Det kommer jo så an på hvordan man koder,
include("$_SERVER[DOCUMENT_ROOT]/test.php");
vil virke fint nok. Havde så ikke lige kikket ordentlig på 1. ex. fra palito

bruger det aldrig selv, altså adskiller altid selv tekst og variabler, også i en query

include($_SERVER["DOCUMENT_ROOT"] ."/test.php");

(SELECT * FROM `db` WHERE `navn` = '". $_SESSION["navn"] ."' AND `id` = ". intval($_GET["id"]) ."") or die (mysql_error());
Avatar billede scr Nybegynder
10. december 2006 - 18:24 #6
Om include("$_SERVER[DOCUMENT_ROOT]/test.php"); vil virke er egentlig slet ikke relevant, da det er helt forkert syntaks.

Først og fremmest vil PHP lede efter noget defineret som "DOCUMENT_ROOT", dernæst er jeg slet ikke sikker på PHP kan se at variablen ender ved "ROOT]". Det er ihvertfald ikke god skik, korrekt syntaks eller ønskeligt :). Det er derimod også langsommere end at skrive det korrekt.
Nemlig include($_SERVER['DOCUMENT_ROOT'] . '/test.php'); (eller med dobbelt citationstegn, men da det er langsommere er dette det "helt rigtige" :D)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester