Menyertakan dan Memerlukan Fail
Pisahkan halaman kepada bahagian boleh guna semula dengan include dan require.
Menyertakan dan Memerlukan Fail ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Guna Semula Kod dengan Penyertaan Fail
PHP menyediakan empat pernyataan untuk menyertakan kod daripada fail lain:
include— sertakan fail; beri amaran jika tiadarequire— sertakan fail; hasilkan ralat maut jika tiadainclude_once— sertakan hanya jika belum disertakanrequire_once— perlukan hanya jika belum disertakan
include dan require
Perbezaan utama: fail require yang tiada menyebabkan ralat maut; fail include yang tiada hanya menghasilkan amaran:
<?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 dan require_once
Varian _once menghalang fail yang sama daripada disertakan beberapa kali:
<?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 filesSkop Pemboleh Ubah dalam Fail yang Disertakan
Fail yang disertakan berkongsi skop fail yang menyertakannya — tetapi bukan skop fungsi:
<?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
}Mengembalikan Nilai daripada Fail yang Disertakan
Fail yang disertakan boleh mengembalikan nilai menggunakan pernyataan 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 arraysMembina Reka Letak Ringkas
Pecahkan halaman kepada fail pengepala, kandungan dan pengaki yang boleh diguna semula:
<?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'; ?>Bahagian Templat
Cipta fail paparan bahagian yang boleh diguna semula untuk komponen berulang:
<?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>Menghantar Pemboleh Ubah kepada Bahagian Templat
Hantar data kepada bahagian templat melalui penetapan pemboleh ubah tempatan sebelum menyertakannya:
<?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 berbanding Pemuatan Automatik
Dalam PHP moden dengan Composer, fail kelas dimuatkan secara automatik — anda tidak perlu menyertakannya secara manual:
<?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 autoloaderKeselamatan: Mencegah Lintasan Laluan
Jangan sesekali menyertakan fail berdasarkan masukan pengguna yang belum disahkan:
<?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';Konfigurasi include_path
Konfigurasikan include_path PHP supaya anda boleh menyertakan fail tanpa laluan penuh:
<?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.phpSemakan Pantas
Apakah perbezaan antara include dan require apabila fail tiada?
Ringkasan: Penyertaan Fail
Ringkasan:
require— ralat maut jika tiada; untuk fail pentinginclude— amaran jika tiada; untuk fail pilihan- Varian _once menghalang pemuatan berganda
- Fail yang disertakan berkongsi skop pemboleh ubah pemanggil
- Fail boleh mengembalikan nilai dengan
return - Jangan sesekali menyertakan laluan daripada masukan pengguna — gunakan senarai putih sahaja
Pelajari PHP dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 49
- Pelajaran
- 195
Soalan Lazim
Adakah pelajaran “Menyertakan dan Memerlukan Fail” percuma?
Ya — teks penuh “Menyertakan dan Memerlukan Fail” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menyertakan dan Memerlukan Fail”?
Pisahkan halaman kepada bahagian boleh guna semula dengan include dan require. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Menyertakan dan Memerlukan Fail” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Tag PHP dan Sintaks Pembenaman
- HTML Dinamik dengan Gelung PHP
- Menyertakan dan Memerlukan Fail
- Corak Templat: Memisahkan Logik daripada Paparan