Menyertakan dan Memerlukan File
Pisahkan halaman menjadi bagian yang dapat digunakan kembali dengan include dan require.
Menyertakan dan Memerlukan File adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.
Penggunaan Ulang Kode dengan Penyertaan Berkas
PHP menyediakan empat pernyataan untuk menyertakan kode dari berkas lain:
include— menyertakan berkas; peringatan jika tidak ditemukanrequire— menyertakan berkas; error fatal jika tidak ditemukaninclude_once— menyertakan hanya jika belum pernah disertakanrequire_once— memerlukan hanya jika belum pernah disertakan
include dan require
Perbedaan utamanya: berkas require yang tidak ditemukan bersifat fatal; berkas include yang tidak ditemukan hanya menghasilkan peringatan:
<?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 mencegah berkas yang sama 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 filesLingkup Variabel dalam Berkas yang Disertakan
Berkas yang disertakan berbagi lingkup berkas yang menyertakannya—tetapi tidak berbagi lingkup 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 dari Berkas yang Disertakan
Berkas yang disertakan dapat 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 arraysMembangun Tata Letak Sederhana
Pisahkan halaman menjadi berkas header, konten, dan footer yang dapat digunakan ulang:
<?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'; ?>Bagian Templat
Buat berkas tampilan parsial yang dapat digunakan ulang 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>Meneruskan Variabel ke Bagian Templat
Teruskan data ke bagian templat melalui penetapan variabel lokal 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 vs Pemuatan Otomatis
Dalam PHP modern dengan Composer, berkas kelas dimuat secara otomatis—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 autoloaderKeamanan: Mencegah Traversal Jalur
Jangan pernah menyertakan berkas berdasarkan input pengguna yang belum divalidasi:
<?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 agar Anda dapat menyertakan berkas tanpa jalur lengkap:
<?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.phpPemeriksaan Singkat
Apa perbedaan antara include dan require ketika berkas tidak ditemukan?
Rangkuman: Menyertakan Berkas
Ringkasan:
require— bersifat fatal jika tidak ditemukan; untuk berkas pentinginclude— menghasilkan peringatan jika tidak ditemukan; untuk berkas opsional- Varian _once mencegah pemuatan ganda
- Berkas yang disertakan berbagi lingkup variabel pemanggil
- Berkas dapat mengembalikan nilai dengan
return - Jangan pernah menyertakan jalur dari input pengguna—gunakan daftar izin saja
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menyertakan dan Memerlukan File” gratis?
Ya — teks lengkap “Menyertakan dan Memerlukan File” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Menyertakan dan Memerlukan File”?
Pisahkan halaman menjadi bagian yang dapat digunakan kembali dengan include dan require. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai PHP Academy?
Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Menyertakan dan Memerlukan File” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Tag PHP dan Sintaks Penyematan
- HTML Dinamis dengan Perulangan PHP
- Menyertakan dan Memerlukan File
- Pola Templat: Memisahkan Logika dari Tampilan