ما هي include و require في PHP؟
هي أوامر تُستخدم لإدراج ملفات PHP أخرى داخل ملفك الحالي، كأنك تنسخ محتوى ملف وتلصقه في مكان الأمر.
✅ الفائدة الأساسية:
تساعد على تقسيم الكود إلى أجزاء صغيرة، مثل:
- ملف للـ رأس الصفحة (header)
- ملف للقائمة الجانبية (sidebar)
- ملف للوظائف (functions)
- ملف لإعدادات الاتصال بقاعدة البيانات (config)
✅ الفرق بين include و require:
الأمر | عند فشل الإدراج | يكمل تنفيذ الكود؟ | الرسالة |
---|---|---|---|
include | يعطي تحذير | ✅ نعم | Warning |
require | يعطي خطأ قاتل | ❌ لا يكمل | Fatal Error (يتوقف التنفيذ) |
✅ الشكل العام:
include "file.php";
require "file.php";
PHP✅ مثال عملي:
ملف greeting.php
:
<?php
echo "أهلاً بك في موقعي<br>";
?>
PHPملف index.php
:
<?php
include "greeting.php";
echo "الصفحة الرئيسية<br>";
?>
PHP📌 الناتج:
أهلاً بك في موقعي
الصفحة الرئيسية
PHP✅ استخدام مع ملفات غير موجودة
مع include:
include "notfound.php";
echo "هذه الصفحة تعمل رغم الخطأ<br>";
PHP📌 الناتج:
Warning: include(notfound.php): Failed to open stream...
هذه الصفحة تعمل رغم الخطأ
PHPمع require:
require "notfound.php";
echo "لن تصل لهذه الرسالة";
PHP📌 الناتج:
Fatal error: require(): Failed opening required...
PHP⛔ البرنامج يتوقف تمامًا.
🧠 ملاحظات مهمة
✅ include_once و require_once
تُستخدم لمنع تكرار إدراج نفس الملف أكثر من مرة.
الأمر | الوظيفة |
---|---|
include_once | إدراج الملف فقط إذا لم يُدرج سابقًا |
require_once | نفس الفكرة لكن مع سلوك require |
مثال:
include_once "config.php";
include_once "config.php"; // لن يتكرر الإدراج
PHP✅ الفروقات الكاملة:
المقارنة | include | include_once | require | require_once |
---|---|---|---|---|
يتابع تنفيذ الكود؟ | ✅ نعم | ✅ نعم | ❌ لا | ❌ لا |
يتحقق من التكرار؟ | ❌ لا | ✅ نعم | ❌ لا | ✅ نعم |
الأفضل مع ملفات هامة؟ | ❌ لا | ❌ لا | ✅ نعم | ✅ نعم |
✅ أفضل الممارسات (توصيات)
التوصية | السبب |
---|---|
استخدم require مع ملفات حساسة | مثل الاتصال بقاعدة البيانات |
استخدم include للملفات الشكلية | مثل header, footer, sidebar |
استخدم *_once عند الحاجة | مثل ملفات تحتوي دوال أو إعدادات |
رتّب ملفاتك بشكل منظم | مثل includes/ , partials/ , config/ |
✅ هيكل مشروع مقترح:
project/
├── index.php
├── includes/
│ ├── header.php
│ ├── footer.php
├── config/
│ └── db.php
PHP<?php
require_once 'config/db.php';
include 'includes/header.php';
echo "محتوى الصفحة<br>";
include 'includes/footer.php';
?>
PHP⚠️ محاذير
المحذور | السبب |
---|---|
نسيان امتداد الملف .php | قد لا يتم الإدراج |
استخدام مسارات خاطئة | تأكد من مكان الملف بالنسبة للمجلد الحالي |
استخدام include في ملفات حساسة | مثل بيانات قاعدة البيانات — استخدم require بدلاً |
تكرار الإدراج | يؤدي لتعريف الدوال مرتين => خطأ — استخدم *_once |
🧪 تمارين للطلاب:
- أنشئ ملفًا باسم
header.php
فيه جملة “رأس الصفحة”. - أنشئ ملفًا باسم
footer.php
فيه جملة “نهاية الصفحة”. - في
index.php
استخدمinclude
لإظهار كلا الملفين حول عبارة “محتوى الصفحة”.
📌 ملخص سريع:
لو تحتاج… | استخدم |
---|---|
إدراج ملف وقد يُفشل، وتريد المتابعة | include |
إدراج ملف ولا تقبل أن يُفشل | require |
منع التكرار في الإدراج | include_once أو require_once |
تنظيم ملفات المشروع | استخدم مجلدات includes/ , config/ وهكذا |