Includes

Ένα αρχείο PHP μπορεί να καλέσει σε οποιοδήποτε σημείο του κώδικα ένα άλλο αρχείο PHP. Η μέθοδος αυτή είναι πολύ χρήσιμη σε περιπτώσεις όπου πρέπει να καλεί κανείς τον ίδιο κώδικα σε διάφορα σημεία της σελίδας. Για παράδειγμα, μπορεί να υπάρχει ένα αρχείο menu.php για τη δημιουργία μενού, το οποίο θα καλείται από κάθε σελίδα του ιστότοπου, χωρίς να απαιτείται να γράφεται κάθε φορά ο κώδικάς του. Επιπλέον, αν χρειαστεί κάποια αλλαγή στον κώδικα του μενού,  γίνεται μια φορά επεξεργασία στο αρχείο menu.php και το αποτέλεσμα είναι το ίδιο σε κάθε σελίδα. Σε διαφορετική περίπτωση, ο προγραμματιστής θα έπρεπε σε κάθε σελίδα να κάνει αλλαγές στο μενού, διαδικασία αρκετά χρονοβόρα.

Για την κλήση εξωτερικού αρχείου μέσα στον κώδικά μας, μπορούν να χρησιμοποιηθούν οι εξής δύο συναρτήσεις:

  • include (), αν υπάρχει λάθος, εμφανίζεται ανάλογο μήνυμα ωστόσο ο κώδικας συνεχίζει να εκτελείται
  • require (), αν υπάρχει λάθος, εμφανίζεται ανάλογο μήνυμα και ο κώδικας σταματάει εκεί


Παράδειγμα με την include()

<?php
    echo "Κείμενο πριν το μενού.";
    include ( "menu.php" );
    echo "Κείμενο μετά το μενού.";
?>

Στην περίπτωση που δεν έχουμε δημιουργήσει το αρχείο menu.php, το αποτέλεσμα είναι το εξής:

Κείμενο πριν το μενού.
Warning: include(menu.php) [function.include]: failed to open stream: No such file or directory in /Applications/MAMP/htdocs/test/test.php on line 8
Warning: include() [function.include]: Failed opening 'menu.php' for inclusion (include_path='.:/Applications/MAMP/bin/php5.3/lib/php') in /Applications/MAMP/htdocs/test/test.php on line 8
Κείμενο μετά το μενού. 

Παρατηρούμε ότι ο κώδικας συνεχίζει και εκτελείται.

Έστω ότι δημιουργούμε το αρχείο menu.php με τον εξής κώδικα:

<p>Μενού επιλογών</p>
<ul>
    <li><a href="index.php">Αρχική σελίδα</a></li>
    <li><a href="about_us.php">Λίγα λόγια για εμάς</a></li>
    <li><a href="contact.php">Επικοινωνία</a></li>
</ul>

Εκτελώντας τον κώδικα στο πρώτο αρχείο, το αποτέλεσμα θα είναι:

Η συνάρτηση include
Η συνάρτηση include

Παράδειγμα με την require()
Είδαμε πριν ότι, σε αντίθεση με τη συνάρτηση include, αν η συνάρτηση require έχει κάποιο λάθος, ο κώδικας σταταμάει να εκτελείται. Επομένως, ο κώδικας:

<?php
    echo "Κείμενο πριν το μενού.";
    require ( "menu.php" );
    echo "Κείμενο μετά το μενού.";
?>

θα έχει το εξής αποτέλεσμα σε περίπτωση λάθους:

Κείμενο πριν το μενού.
Warning: require(menu.php) [function.require]: failed to open stream: No such file or directory in /Applications/MAMP/htdocs/test/test.php on line 8
Fatal error: require() [function.require]: Failed opening required 'menu.php' (include_path='.:/Applications/MAMP/bin/php5.3/lib/php') in /Applications/MAMP/htdocs/test/test.php on line 8

Παρατηρούμε ότι η συνάρτηση echo μετά τη require, δεν εκτελείται.