login  Naam:   Wachtwoord: 
Registreer je!
 Tutorials

Tutorials > PHP


Gegevens:
Geschreven door:
Dani
Moeilijkheidsgraad:
Normaal
Hits:
38298
Punten:
Aantal punten:
 (4.11)
Aantal stemmen:
18
Stem:
Niet ingelogd
Nota's:
 Lees de nota's (5)
 


Tutorial:

include() & require()

include(), require(), include_once(), require_once()

1. Inleiding
2. Gebruik in functies
3. Conditionele constructie

1. Inleiding

Deze functies zijn waarschijnlijk de meest gebruikte functies in PHP.
Zij hebben ook redelijk ingewikkelde aspecten die ik in deze tutorial niet zal benaderen.
De meeste gegevens uit deze tutorial heb ik van www.php.net gehaald, maar de daar te vinden informatie in het nederlands is niet meer juist (oude vertaling uit de tijd van PHP3).

Zij hebben allemaal hetzelfde doel : een bestand invoegen en evalueren.

include() en require() zijn identisch op alle vlakken behalve in hun omgang met fouten.
Als een fout optreedt zal include() een waarschuwing produceren terwijl require() een fatale fout geeft.

Gebruik dus require() om de verwerking van de pagina te stoppen indien het bestand ontbreekt.
Let wel dat een 'parse error' met require() de dossierverwerking niet zal onderbeken.

include_once() en require_once() hebben een gelijk gedrag, met het enige verschil dat als de code van een dossier reeds is omvat, het niet opnieuw omvat zal worden.
Deze worden enkel gebruikt indien je wil vermijden dat een bestand meer als een keer wordt ingevoegd, dit is vooral handig bij bestanden die functies bevatten.
Gebruik deze nooit in een iteratie (while of for lus).

Simpel voorbeeld van een include :

waarden.php
<?php
    $naam
= 'Daniel';
    
$plaats = 'Oostende';
?>

test.php
<?php
    
include('waarden.php');
    echo
"Ik ben ".$naam." uit ".$plaats; //Ik ben Daniel uit Oostende
?>

 top

2. Gebruik in functies
In het volgende voorbeeld tonen wij het gedrag van includes binnen functies.
Zoals jullie waarschijnlijk al weten hebben functies hun eigen werkingsgebied.
m.a.w. : een variabele die binnen de functie gedefineerd is, is niet buiten de functie beschikbaar, behalve als deze als 'global' gedeclareerd is.

waarden.php
<?php
    $naam
= 'Daniel';
    
$plaats = 'Oostende';
?>

test.php
<?php
function test()
{
   global
$plaats;
   include
'waarden.php';
   
echo "Ik ben ".$naam." uit ".$plaats;
}
test();                                 //Ik ben Daniel uit Oostende
echo "Ik ben ".$naam." uit ".$plaats;  //Ik ben uit Oostende
?>

Zoals je in het voorbeeld kan zien is de variabel $naam niet buiten de functie beschikbaar, daareentegen is $plaats wel beschikbaar omdat wij deze als 'global' gedeclareerd hebben.

 top

3. Conditionele constructie
Omdat deze functies een speciale taal constructie zijn, ben je verplicht deze te omgeven met een statement blok als deze statement zich in een conditionele constructie bevindt.

// Dit is FOUT
<?php
if ($conditie)
   include(
$file1);
?>

// Dit is JUIST
<?php
if ($conditie) {
   include(
$file1);
}
?>

De conditionele include() wordt vaak gebruikt om HTML frames te vervangen/vermijden.
Laat ons even volgende pagina opbouw bekijken :

<body>
    <table>
        <tr>
            <td>
                <a href="http://www.sitemasters.be/?pagina=home">Home</a><br />
                <a href="http://www.sitemasters.be/?pagina=news">News</a><br />
                <a href="http://www.sitemasters.be/?pagina=links">Links</a><br />
            </td>
            <td>
                <?php
                    
if (isset($_GET['pagina']))
                    {
                        if(
$_GET['pagina']=='home')
                        {
                            include(
'home.php');
                        }
                        elseif(
$_GET['pagina']=='news')
                        {
                            include(
'news.php');
                        }
                        elseif(
$_GET['pagina']=='links')
                        {
                            include(
'links.php');
                        }
                    }
                
?>
            </td>
        </tr>
    </table>
</body>

In het linkse deel van de tabel hebben wij drie hyperlinks die via de HTTP GET methode een waarde geven aan de index 'pagina'.
In het rechtse deel van de tabel hebben wij een conditionele constructie die volgens de waarde van het index 'pagina' een bestand invoegt. Wij hebben dus een gelijkaardig effect als met HTML frames, behalve dat wij hier de inhoud van een cel veranderen in plaats van een frame.

 top

Hiermee sluit ik deze tutorial af en wens jullie veel succes bij het gebruik van deze functies.

See You,

Daniel

« Vorige tutorial : Reguliere Expressies Volgende tutorial : MultiViews met PHP »

© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.014s