Require_once()

Require
Syntax:

Quote:
void require( string file );

Require() vervangt zichzelf met het opgegeven bestand. Je zou kunnen zeggen dat require() bijna hetzelfde is als de bekende include(). Maar met een groot verschil:
Als het opgegeven bestand niet wordt gevonden is het game-over met je script, want php zal dan een fatale error geven. Bij include() wordt er alleen een foutmelding gegeven, maar require is streng, en laat een fatale error(Fatal error) zien. Bovendien wordt met require() het bestand hoe dan ook ingeladen. Dus bij deze code zal de twee require() de bestanden altijd inladen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if ($dat = true) {
require "foo.php";
}

if ($dit = true) {
require "bar.php";
}
?>

Dus wil je dit zonder failture(falen) laten werken, moet je include gebruiken.

Require_once()
Bijna precies hetzelfde als de bovengenoemde require() met zelfs de zelfde syntax, alleen een groot verschil is dat hij het bestand niet nog een keer required als het al required is. Voorbeeld:
---settings.php---
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$SETTINGS
['mysql']['user'] = 'foo';
$SETTINGS['mysql']['pass'] = 'bar';
$SETTINGS['mysql']['host'] = 'localhost';
$SETTINGS['mysql']['db'] = 'mii_site';

function
connect() {
global $SETTINGS;
if (!mysql_connect($SETTINGS['mysql']['host'], $SETTINGS['mysql']['user'], $SETTINGS['mysql']['pass'])) {
return false;
}

if (!mysql_select_db($SETTINGS['mysql']['db'])) {
return false;
}

return true;
}
?>

---index.php---
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
require "settings.php";
connect();
////////////
/// blablabla
/// veel interesante code
/////////////////
/// nu zijn we 500 regels verder ;)

require "settings.php";
?>

Opzich is het een leuke code, maar werken zal hij niet want php zal gegarandeerd gaan klagen dat de functie connect() al gedefineerd is en dus al bestaat.
Omdat te voorkomen kan je onder andere de functie require_once() voortaan gebruiken in plaats van require().
Dus de code zou kunnen worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
require_once "settings.php";
connect();
////////////
/// blablabla
/// veel interesante code
/////////////////
/// nu zijn we 500 regels verder ;)

require_once "settings.php";
?>

Nu zal de code feilloos werken. Zonder enig probleem.

Include_once()
Eigenlijk de include versie van require_once(). Zorgt er dus voor dat een code maximaal een keer geincluded wordt. En geeft dus alleen een lichte foutmelding als het bestand niet gevonden wordt.
Kan handig zijn als je altijd in plaats van require() include() hebt gebruikt.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Require_once()

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.