Inclusione e richiesta di file
Suddividere le pagine in parti riutilizzabili con include e require.
Inclusione e richiesta di file è una lezione PHP Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PHP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PHP Academy include 4 lezioni in totale.
Riutilizzo del codice con l'inclusione di file
PHP fornisce quattro istruzioni per includere codice da altri file:
include— include il file; genera un avviso se mancarequire— include il file; genera un errore fatale se mancainclude_once— include il file solo se non è già stato inclusorequire_once— richiede il file solo se non è già stato incluso
include e require
La differenza principale è che un file require mancante causa un errore fatale, mentre un file include mancante genera solo un avviso:
<?php
// Fatal error if missing — use for critical files
require 'config.php';
require 'database.php';
// Warning if missing, but execution continues
include 'optional_plugin.php';
// Use __DIR__ for reliable relative paths:
require __DIR__ . '/helpers/utils.php';include_once e require_once
Le varianti _once impediscono che lo stesso file venga incluso più volte:
<?php
// Without _once: including twice redefines functions
include 'functions.php';
include 'functions.php'; // Fatal: function redefined!
// With _once: second include is a no-op
require_once 'functions.php';
require_once 'functions.php'; // safe — skipped
// Rule: use require_once for class and function definition filesAmbito delle variabili nei file inclusi
I file inclusi condividono l'ambito del file che li include, ma non l'ambito delle funzioni:
<?php
// main.php
$title = 'My Site';
require 'header.php'; // header.php can use $title
// But in a function:
function loadTemplate(): void {
require 'header.php'; // $title is NOT accessible here!
// Must pass data explicitly
}Restituire valori dai file inclusi
I file inclusi possono restituire valori usando l'istruzione return:
<?php
// config.php content:
// return ['debug' => true, 'db_host' => 'localhost'];
// main.php:
$config = require 'config.php';
echo $config['db_host']; // localhost
// Common pattern for configuration files that return arraysCreazione di un layout semplice
Divida una pagina in file riutilizzabili per header, contenuto e footer:
<?php
// index.php
$pageTitle = 'Home Page';
$bodyClass = 'home';
require_once 'partials/header.php';
?>
<main class="container">
<h1>Welcome!</h1>
<p>Main content goes here.</p>
</main>
<?php require_once 'partials/footer.php'; ?>Parti di template
Crei file di viste parziali riutilizzabili per i componenti ripetuti:
<?php
// partials/card.php
// Expects: $card['title'], $card['body'], $card['url']
?>
<div class="card">
<h3><a href="<?= htmlspecialchars($card['url']) ?>">
<?= htmlspecialchars($card['title']) ?>
</a></h3>
<p><?= htmlspecialchars($card['body']) ?></p>
</div>Passaggio di variabili alle parti di template
Passi i dati a una parte di template assegnando una variabile locale prima dell'inclusione:
<?php
$articles = getArticles();
foreach ($articles as $article) {
$card = [
'title' => $article['title'],
'body' => substr($article['body'], 0, 100) . '...',
'url' => '/articles/' . $article['slug'],
];
require 'partials/card.php';
}include e caricamento automatico
Nel PHP moderno con Composer, i file delle classi vengono caricati automaticamente: non deve includerli manualmente:
<?php
// Old way (manual includes):
require 'classes/User.php';
require 'classes/Post.php';
// Modern way (Composer autoloading):
require __DIR__ . '/vendor/autoload.php';
// Classes are loaded automatically when first used
$user = new User(); // User.php loaded by autoloader
$post = new Post(); // Post.php loaded by autoloaderSicurezza: prevenire il path traversal
Non includa mai file in base a input dell'utente non convalidati:
<?php
// DANGEROUS:
$page = $_GET['page'];
include $page . '.php'; // allows ../../etc/passwd
// SAFE: whitelist allowed pages
$allowed = ['home', 'about', 'contact'];
$page = $_GET['page'] ?? 'home';
if (!in_array($page, $allowed)) {
$page = 'home';
}
include __DIR__ . '/pages/' . $page . '.php';Configurazione di include_path
Configuri include_path di PHP per poter includere file senza percorsi completi:
<?php
// Current include_path:
echo get_include_path();
// Add your library directory:
set_include_path(
get_include_path() . PATH_SEPARATOR . '/var/www/lib'
);
// Now you can include without full path:
include 'helpers.php'; // found in /var/www/lib/helpers.phpVerifica rapida
Qual è la differenza tra include e require quando il file manca?
Riepilogo: inclusione di file
Riepilogo:
require— errore fatale se manca; per i file essenzialiinclude— avviso se manca; per i file facoltativi- Le varianti _once impediscono il caricamento duplicato
- I file inclusi condividono l'ambito delle variabili del chiamante
- I file possono restituire valori con
return - Non includa mai percorsi provenienti dall'input dell'utente: utilizzi solo una whitelist
Domande Frequenti
La lezione «Inclusione e richiesta di file» è gratuita?
Sì — il testo completo di «Inclusione e richiesta di file» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PHP Academy, passa a CoddyKit PRO. Il corso PHP Academy include 4 lezioni in totale.
Cosa imparerò in «Inclusione e richiesta di file»?
Suddividere le pagine in parti riutilizzabili con include e require. Eserciti PHP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare PHP Academy?
Non è richiesta alcuna esperienza precedente. PHP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Inclusione e richiesta di file»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione PHP Academy?
Sì. Ogni lezione PHP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Tag PHP e sintassi di incorporamento
- HTML dinamico con i cicli PHP
- Inclusione e richiesta di file
- Pattern dei template: separare la logica dalla vista