WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   include eller include_once (https://www.wn.se/forum/showthread.php?t=23584)

boromb 2007-09-13 13:06

Hej!

Jag har en fil innehållande olika variablar som används lite här och där.
Jag måste includera den varje gång en sida laddas men också en funktion.

Om jag då använder "include" laddas filen in varje gång en funktion eller sida inkluderar den men om jag använder include_once kommer filen att laddas en enda gång?
Borde vara snabbare?

Mvh, Boris

MrMike 2007-09-13 13:28

Kolla här
http://aspn.activestate.com/ASPN/doc...lude-once.html

boromb 2007-09-13 13:35

Det är ganska solklart men då jag fick lite fel pga ändring till include_once undrade jag om jag verkligen har de förstått allt.

Alltså
Huvudsida
include_once(functions.php)
include_once(globals.php)
|-en funktion i fuctions.php kräver också globals.php

Kör jag med include_once kommer systemet se att filen redan är inkluderat tidigare och därför inte inkluderas igen.

Kör jag däremot "include" kommer filen att inkluderas varje gång jag använder mig av en funktion som inkluderar en fil?

Har jag rätt?
mvh, Boris

boromb 2007-09-13 13:44

include_once borde helt enkelt vara att föredra.
Kör jag alltid med include_once kommer alla filer som behöver inkluderas att inkluderas men bara en gång.

boromb 2007-09-13 14:19

Hur hantera include filer i funktioner

Om jag includerar en fil i funktioner, tas den bort när funktionen har kört klart?

Händer det er att ni behöver inkludera filer i funktioner?


Mvh, Boris

HenSod 2007-09-13 14:23

Inte i funktioner, men i klasser vid vissa tillfällen. Jag använder mycket globala variablar i mina applikationer. Jag tycker det är en bättre lösning.

Magnus_A 2007-09-13 14:34

När du kör en include så växlar du in på den filen och exekverar de kommandon som eventuellt finns där. När det är klart fortsätter exekverandet i den anropande filen med de variabler som fanns tillgänliga vid början av inkluderingen. Variabler som definieras och åsätts värden under inkluderingen glöms bort. Det finns en möjlighet att ta vara på resultat genom att anropa return i slutet och då returnerar den inkluderade filen ett värde, som du kan använda på ett liknande sätt när en funktion returnerar ett värde.

Fast du kanske använder includen till att deklarera klasser och funktioner och dessa blir då tillgängliga globalt.

Inuti en funktion så ärver den inkluderade filen de variabler som finns tillgängliga inuti funktionen.

boromb 2007-09-14 09:38

Alltså

1. Inkluderar jag en fil med en massa variablar så får jag tillgång till dem alla
om jag har en variable
$test = getIp();

Då får jag tillgång till variablen och funktionen getIp() exekveras?

2. Inkluderar jag en fil med en massa funktioner så exekveras ingenting förrän jag anropar en funktion.

Mvh, Boris

boromb 2007-09-14 14:43

En förhoppningsvis sista fråga angående detta :)

Huvudfilen
inkluderar följande filer

include('include/functions.php');
include("include/globals.php");

kör sen en funktion från functions som också behöver globals.php
include("include/globals.php"); - funkar
include_once("include/globals.php"); - funkar inte

Den känner av att filen globals.php redan är laddad men den har inte tillgång till variablarna ?

Är det så det ska vara?
Ska jag alltid då köra include för funktioner?

Mvh, Boris

HenSod 2007-09-14 15:34

Har register globals on i php.ini så skriver du global $variabelnamnet direkt efter function namnpåfunktion()


Alla tider är GMT +2. Klockan är nu 06:17.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson