PHP Academy · Pelajaran

Menyertakan dan Memerlukan Fail

Pisahkan halaman kepada bahagian boleh guna semula dengan include dan require.

Pelajaran 3 daripada 413 langkah

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 tiada
  • require — sertakan fail; hasilkan ralat maut jika tiada
  • include_once — sertakan hanya jika belum disertakan
  • require_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 files

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

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

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

Semakan Pantas

Apakah perbezaan antara include dan require apabila fail tiada?

Ringkasan: Penyertaan Fail

Ringkasan:

  • require — ralat maut jika tiada; untuk fail penting
  • include — 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
Percuma untuk bermula

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

  1. Tag PHP dan Sintaks Pembenaman
  2. HTML Dinamik dengan Gelung PHP
  3. Menyertakan dan Memerlukan Fail
  4. Corak Templat: Memisahkan Logik daripada Paparan
← Kembali ke PHP Academy