📘 جزوه آموزشی PHP — مبحث include و require (نسخه کامل)

🎯 هدف درس

در این جزوه، دانش‌آموز یاد می‌گیرد:

  • include و require چه هستند؟
  • include_once و require_once چه کاربردی دارند؟
  • تفاوت این دستورها چیست؟
  • چه زمانی از هرکدام استفاده کنیم؟
  • مثال‌های واقعی در پروژه‌ها
  • اشتباهات رایج و تمرین‌ها

⭐ ۱. include و require چیست؟

در PHP گاهی لازم است کدهای یک فایل دیگر را داخل فایل فعلی استفاده کنیم. این کار باعث می‌شود:

  • کدها تکراری نشوند
  • مدیریت پروژه راحت‌تر شود
  • سرعت نوشتن پروژه بیشتر شود
  • ساختار سایت منظم‌تر باشد (header – footer – menu – connect)

برای این کار از ۴ دستور استفاده می‌کنیم:

  1. include
  2. include_once
  3. require
  4. require_once

⭐ ۲. دستور include

✔ تعریف:

فایل را وارد می‌کند. اگر فایل پیدا نشود، فقط هشدار (Warning) می‌دهد و برنامه ادامه اجرا می‌شود.

✔ مثال:

include "header.php";

✔ کاربرد:

  • فایل‌هایی که نبودن آن‌ها باعث متوقف شدن سایت نمی‌شود
  • مثل فایل‌های تبلیغات، منوهای فرعی، پیام‌ها

⭐ ۳. دستور include_once

✔ تعریف:

مثل include است، با این تفاوت که فایل فقط یک بار وارد می‌شود.

حتی اگر چند بار include_once را بنویسید، فقط بار اول فایل را لود می‌کند.

✔ مثال:

include_once "functions.php";

✔ کاربرد:

  • جلوگیری از بارگذاری دوباره‌ی فایل
  • جلوگیری از خطاهای "تابع تکراری" یا "متغیر دوباره تعریف شده"

⭐ ۴. دستور require

✔ تعریف:

این دستور هم یک فایل را وارد می‌کند. اما اگر فایل وجود نداشته باشد، یک خطای جدی (Fatal Error) رخ می‌دهد و برنامه متوقف می‌شود.

✔ مثال:

require "config.php";

✔ کاربرد:

فایل‌هایی که نبودنشان باعث خراب شدن سایت می‌شود، مثل:

  • فایل اتصال به پایگاه داده
  • فایل تنظیمات سایت
  • فایل توابع مهم

⭐ ۵. دستور require_once

✔ تعریف:

ترکیبی از require و once یعنی:

  • فایل ضروری است، نبودنش = توقف برنامه
  • فقط یک بار لود می‌شود و از تکرار جلوگیری می‌کند

✔ مثال:

require_once "config.php";

✔ بهترین محل استفاده:

فایل اتصال به دیتابیس فایل توابع اصلی پروژه


⭐ ۶. جدول تفاوت‌ها (بسیار مهم)

دستور اگر فایل نباشد چند بار لود می‌شود؟ کاربرد
include هشدار می‌دهد بله فایل‌های غیر ضروری
include_once هشدار می‌دهد فقط یک بار جلوگیری از تکرار فایل
require خطای شدید (توقف کامل) بله فایل‌های ضروری
require_once خطای شدید فقط یک بار فایل ضروری + جلوگیری از تکرار

⭐ ۷. مثال کامل — ساخت صفحه با include و require

🔹 فایل header.php:

<!DOCTYPE html>
<html>
<head>
    <title>سایت مدرسه</title>
</head>
<body>
<h2>خوش آمدید</h2>
<hr>

🔹 فایل footer.php:

<hr>
<p>© 2025 — سایت مدرسه</p>
</body>
</html>

🔹 فایل index.php:

<?php include "header.php"; ?>

<p>این صفحه‌ی اصلی سایت است.</p>

<?php include "footer.php"; ?>

⭐ ۸. مثال مهم — استفاده از require_once برای اتصال دیتابیس

🔹 فایل config.php

<?php
$connection = new mysqli("localhost", "root", "", "school");

if ($connection->connect_error) {
    die("خطا در اتصال به پایگاه‌داده");
}
?>

🔹 فایل students.php

<?php require_once "config.php"; ?>

<?php
$result = $connection->query("SELECT * FROM students");

while($row = $result->fetch_assoc()) {
    echo $row["name"] . "<br>";
}
?>

💡 چرا require_once؟

  • فایل ضروری است (بدون آن سایت کار نمی‌کند).
  • نباید دوباره لود شود، چون اتصال تکراری خطرناک است.

⭐ ۹. مسیر دهی (Path) در include و require

✔ مسیر نسبی

include "menu/menu.php";

✔ برگشت به مسیر بالاتر

include "../header.php";

✔ مسیر کامل

include "/var/www/html/project/header.php";

⭐ ۱۰. خطاهای رایج برای دانش‌آموزان

❌ خطا: دوبار include کردن یک فایل و اجرای دوباره‌ی توابع

✔ راه‌حل: include_once

❌ خطا: require باعث توقف سایت شده

✔ راه‌حل: اگر فایل ضروری نیست، include بهتر است

❌ خطا: مسیر فایل اشتباه است

✔ راه‌حل: از مسیر صحیح یا پوشه‌بندی صحیح استفاده کنید

❌ خطا: فایل config دو بار اجرا شده

✔ راه‌حل: require_once