Kom ihåg mig?
Home Menu

Menu


include_once och require_once

Ämnesverktyg Visningsalternativ
Oläst 2007-02-15, 17:04 #1
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Vad är skillnaden på funktionerna include_once() och require_once() i php?
Timofey är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-15, 17:37 #2
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
om require_once inte hittar filen så avslutas php-skriptet. Om include_once inte hittar filen så fortsätter php-skriptet. Har jag för mig i alla fall.
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-15, 17:50 #3
jimmies avatar
jimmie jimmie är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 751
jimmie jimmie är inte uppkopplad
Mycket flitig postare
jimmies avatar
 
Reg.datum: Oct 2004
Inlägg: 751
Unlike include(), require() will always read in the target file, even if the line it's on never executes. If you want to conditionally include a file, use include(). The conditional statement won't affect the require(). However, if the line on which the require() occurs is not executed, neither will any of the code in the target file be executed.
jimmie är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-15, 17:52 #4
Seattlegrunges avatar
Seattlegrunge Seattlegrunge är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2003
Inlägg: 979
Seattlegrunge Seattlegrunge är inte uppkopplad
Mycket flitig postare
Seattlegrunges avatar
 
Reg.datum: Nov 2003
Inlägg: 979
Hur ofta använder man include_once() och require_once() istället för include() och require() tro? Har aldrig använt förstnämnda faktiskt.
Seattlegrunge är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-15, 17:57 #5
koalas avatar
koala koala är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Sep 2004
Inlägg: 1 154
koala koala är inte uppkopplad
Har WN som tidsfördriv
koalas avatar
 
Reg.datum: Sep 2004
Inlägg: 1 154
Citat:
Originally posted by Seattlegrunge@Feb 15 2007, 17:52
Hur ofta använder man include_once() och require_once() istället för include() och require() tro? Har aldrig använt förstnämnda faktiskt.
Själv använder jag i princip bara require_once.
koala är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-15, 17:58 #6
MattiasAs avatar
MattiasA MattiasA är inte uppkopplad
Medlem
 
Reg.datum: Dec 2006
Inlägg: 235
MattiasA MattiasA är inte uppkopplad
Medlem
MattiasAs avatar
 
Reg.datum: Dec 2006
Inlägg: 235
Citat:
Originally posted by Seattlegrunge@Feb 15 2007, 18:52
Hur ofta använder man include_once() och require_once() istället för include() och require() tro? Har aldrig använt förstnämnda faktiskt.
Det kan vara bra om man inkluderar filer som inkluderar andra och man vill inte inkludera en fil två gånger..
t.ex databas inloggning...
MattiasA är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-15, 17:58 #7
jimmies avatar
jimmie jimmie är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 751
jimmie jimmie är inte uppkopplad
Mycket flitig postare
jimmies avatar
 
Reg.datum: Oct 2004
Inlägg: 751
Citat:
Ursprungligen postat av koala
Citat:
Ursprungligen postat av Seattlegrunge
Hur ofta använder man include_once() och require_once() istället för include() och require() tro? Har aldrig använt förstnämnda faktiskt.
Själv använder jag i princip bara require_once.
Mer overhead att använda *_once, ur effektivitetssynpunkt bör man använda include/require utan _once.
jimmie är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-15, 18:33 #8
Seattlegrunges avatar
Seattlegrunge Seattlegrunge är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2003
Inlägg: 979
Seattlegrunge Seattlegrunge är inte uppkopplad
Mycket flitig postare
Seattlegrunges avatar
 
Reg.datum: Nov 2003
Inlägg: 979
Många om budet tycker jag
Seattlegrunge är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-16, 10:49 #9
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Citat:
Originally posted by Seattlegrunge@Feb 15 2007, 19:33
Många om budet tycker jag
Jag kan tillägga att jag alltid använder require_once för t ex databas uppkopplingar. Det är betydligt viktigare att säkerheten och stabiliteten fungerar än eventuell marginell extra belastning som _once skulle innebära. För funktions-/objektbibliotek som bara ska förekomma en gång är det motiverat med require_once (om det är nödvändigt, t ex databasförbindelse) eller include_once (om det handlar om funktioner eller objekt som kanske inte används på den specifika sidan).

Däremot kan man ju gott använda require eller include för header- eller footerdelar av sidan som mest innehåller html och kanske ska förekomma flera om gångar på sidan (require t ex för en header som måste vara med för att innehållet på sidan ska bli meningsfullt, include för någon spalt på sidan som inte absolut måste vara med – require ger resulterar ju annars i att sidan slutar ladda).
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-16, 13:47 #10
koalas avatar
koala koala är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Sep 2004
Inlägg: 1 154
koala koala är inte uppkopplad
Har WN som tidsfördriv
koalas avatar
 
Reg.datum: Sep 2004
Inlägg: 1 154
Citat:
Ursprungligen postat av jimmie
Citat:
Originally posted by -koala@Feb 15 2007, 19:57
Citat:
Ursprungligen postat av Seattlegrunge
Hur ofta använder man include_once() och require_once() istället för include() och require() tro? Har aldrig använt förstnämnda faktiskt.
Själv använder jag i princip bara require_once.

Mer overhead att använda *_once, ur effektivitetssynpunkt bör man använda include/require utan _once.
Tack för tipset. Har inte tänkt på det faktiskt. Dock är det numera (som tur är) sällan jag behöver inkludera filer, eftersom jag använder ramverket Symfony, som sköter det själv. Hittade följande på PHP.net:

Citat:
require_once (and include_once for that matters) is slow.
Furthermore, if you plan on using unit tests and mock objects (i.e. including mock classes before the real ones are included in the class you want to test), it will not work as require() loads a file and not a class.

To bypass that, and gain speed, I use :

Kod:
<?php
class_exists('myClass') || require('path/to/myClass.class.php');
?>
I tried to time 100 require_once on the same file and it took the script 0.0026 seconds to run, whereas with my method it took only 0.00054 seconds. 4 times faster ! OK, my method of testing is quite empirical and YMMV but the bonus is the ability to use mock objects in your unit tests.
koala är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 14:18.

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