0Pricing
PHP Academy · Lezione

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 manca
  • require — include il file; genera un errore fatale se manca
  • include_once — include il file solo se non è già stato incluso
  • require_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 files

Ambito 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 arrays

Creazione 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 autoloader

Sicurezza: 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.php

Verifica 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 essenziali
  • include — 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

  1. Tag PHP e sintassi di incorporamento
  2. HTML dinamico con i cicli PHP
  3. Inclusione e richiesta di file
  4. Pattern dei template: separare la logica dalla vista
← Torna a PHP Academy