Tiedostojen sisällyttäminen ja vaatiminen
Jakakaa sivut uudelleenkäytettäviin osiin include- ja require-lauseilla.
Tiedostojen sisällyttäminen ja vaatiminen on ilmainen PHP Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu PHP Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. PHP Academy-kurssilla on yhteensä 4 oppituntia.
Koodin uudelleenkäyttö tiedostoja sisällyttämällä
PHP tarjoaa neljä lausetta koodin sisällyttämiseen muista tiedostoista:
include– sisällyttää tiedoston ja antaa varoituksen, jos tiedostoa ei löydyrequire– sisällyttää tiedoston ja aiheuttaa vakavan virheen, jos tiedostoa ei löydyinclude_once– sisällyttää tiedoston vain, jos sitä ei ole jo sisällytettyrequire_once– vaatii tiedoston vain, jos sitä ei ole jo sisällytetty
include ja require
Keskeinen ero: puuttuva require-tiedosto aiheuttaa vakavan virheen, kun taas puuttuva include-tiedosto aiheuttaa vain varoituksen:
<?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 ja require_once
_once-versiot estävät saman tiedoston sisällyttämisen useita kertoja:
<?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 filesMuuttujien näkyvyys sisällytetyissä tiedostoissa
Sisällytetyt tiedostot jakavat sisällyttävän tiedoston näkyvyysalueen, mutta eivät funktion näkyvyysaluetta:
<?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
}Arvojen palauttaminen sisällytetyistä tiedostoista
Sisällytettävät tiedostot voivat palauttaa arvoja return-lauseen avulla:
<?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 arraysYksinkertaisen asettelun rakentaminen
Jaa sivu uudelleenkäytettäviin header-, sisältö- ja footer-tiedostoihin:
<?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'; ?>Mallipohjien osat
Luo uudelleenkäytettäviä osittaisten näkymien tiedostoja toistuvia komponentteja varten:
<?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>Muuttujien välittäminen mallipohjien osiin
Välitä dataa mallipohjan osalle määrittämällä paikallinen muuttuja ennen sisällyttämistä:
<?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 ja automaattinen lataus
Modernissa PHP:ssä Composerin kanssa luokkatiedostot ladataan automaattisesti – niitä ei tarvitse sisällyttää manuaalisesti:
<?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 autoloaderTietoturva: polkujen läpikäynnin estäminen
Älä koskaan sisällytä tiedostoja vahvistamattoman käyttäjän syötteen perusteella:
<?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';include_path-määritys
Määritä PHP:n include_path, jotta voit sisällyttää tiedostoja ilman täydellisiä polkuja:
<?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.phpPikatarkistus
Mikä ero include- ja require-lauseilla on, kun tiedosto puuttuu?
Kertaus: tiedostojen sisällyttäminen
Yhteenveto:
require– aiheuttaa vakavan virheen puuttuessaan; käytä kriittisiin tiedostoihininclude– antaa puuttuessaan varoituksen; käytä valinnaisiin tiedostoihin- _once-versiot estävät tiedoston lataamisen useita kertoja
- Sisällytetyt tiedostot jakavat kutsuvan tiedoston muuttujien näkyvyysalueen
- Tiedostot voivat palauttaa arvoja
return-lauseella - Älä koskaan sisällytä käyttäjän syötteestä peräisin olevia polkuja – käytä vain sallittujen arvojen luetteloa
Opi PHP tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 49
- Oppitunnit
- 195
Usein kysytyt kysymykset
Onko oppitunti ”Tiedostojen sisällyttäminen ja vaatiminen” ilmainen?
Kyllä – oppitunnin ”Tiedostojen sisällyttäminen ja vaatiminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko PHP Academy-kurssin, päivitä CoddyKit PROhon. PHP Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Tiedostojen sisällyttäminen ja vaatiminen”?
Jakakaa sivut uudelleenkäytettäviin osiin include- ja require-lauseilla. Harjoittelet PHP Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni PHP Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin PHP Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Tiedostojen sisällyttäminen ja vaatiminen”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä PHP Academy-oppitunnilla?
Kyllä. Jokainen PHP Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- PHP-tunnisteet ja upotussyntaksi
- Dynaaminen HTML PHP-silmukoilla
- Tiedostojen sisällyttäminen ja vaatiminen
- Mallipohjakuviomalli: logiikan erottaminen näkymästä