English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدليل، ستتعلم كيفية تضمين وتقييم الملفات في PHP.
يمكن استخدام جملات include() و require() لتضمين كود ملف PHP في ملف آخر PHP. ينتج تضمين الملفات نفس النتيجة التي تحصل عليها عند نسخ سكريبت من ملف معين وإلصاقه في المكان الذي يتم استدعاؤه.
يمكنك توفير الكثير من الوقت من خلال العمل بملفات التضمين فقط-عندما تضع كود في ملف منفرد، ثم تستخدم جملات include() و require() لتضمينه في أي مكان تحتاجه، دون الحاجة إلى إعادة إدخال كود الكامل عدة مرات. مثال تقليدي هو تضمين ملفات الرأس والقدم والقائمة في جميع صفحات الموقع.
يمكن تقديم جملة تعليمات include() و require() الأساسية كما يلي:}}
include("path/to/filename"); أو include "path/to/filename"; require("path/to/filename"); أو require "path/to/filename";
إشارة:مثل تعليمات print و echo، يمكنك تجاهل الأقواس عند استخدام تعليمات include و require، كما هو موضح أعلاه.
سيقدم لك هذا المثال كيفية تضمين رموز الرأس والخلفية والقائمة العامة التي يتم تخزينها في ملفات منفصلة مثل "header.php"، "footer.php" و "menu.php" في جميع صفحات الموقع. باستخدام هذه التقنية، يمكنك تحديث جميع صفحات الموقع بسهولة عبر تعديل ملف واحد فقط، مما يوفر الكثير من العمل المتكرر.
<!DOCTYPE html> <html> <head> <title>دليل الأساسيات</title> </head> <?php include "header.php"; ?> <?php include "menu.php"; ?> <h1>مرحبًا بزيارتك لموقعنا الالكتروني (ar.oldtoolbag.com)!</h1> <p>في هذا المكان، ستجد الكثير من المعلومات المفيدة.</p> <?php include "footer.php"; ?> </html>
قد تتساءل، إذا كان يمكننا استخدام تعليمات include() لتضمين الملفات، لماذا نحتاج إلى require(). عادةً، يعمل تعليمات require() بشكل مشابه لتعليمات include().
الفرق الوحيد هو أنـ تعليمات include() تولد تحذيرات PHP فقط، ولكن إذا لم يتم العثور على الملف الذي يتم تضمينه، فإنه يسمح للمستند بالاستمرار في التنفيذ، بينما تعليمات require() تولد خطأ فادحًا ويوقف تنفيذ المستند.
<?php require "my_variables.php"; ?> <?php require "my_functions.php"; ?> <!DOCTYPE html> <html> <head> <title><?php displayTitle($home_page); ?></title> </head> <?php include "header.php"; ?> <?php include "menu.php"; ?> <h1>مرحبًا بزيارتك لموقعنا الالكتروني (ar.oldtoolbag.com)!</h1> <p>في هذا المكان، ستجد الكثير من المعلومات المفيدة.</p> <?php include "footer.php"; ?> </html>
ملاحظة: إذا تم تضمين ملفات المكتبات أو ملفات تحتوي على الدوال والتعديلات الضرورية لتشغيل التطبيق (كماملف تكوين قاعدة البيانات)، يُنصح باستخدام جملة require().
إذا تم استخدام جمل include أو require لتحميل نفس الملف مرارًا وتكرارًا في الكود (غالبًادالةأوفئةملف) قد يؤدي إلى تضارب. لتجنب هذا، يقدم PHP جمل include_once وrequire_once. تعمل هذه الجمل بنفس طريقة جمل include وrequire، باستثناء ما يلي:
حتى لو تم تضمين هذا الملف مرتين، فإن جملات include_once وrequire_once ستضمين الملف مرة واحدة فقط، مما يعني أن إذا تم تضمين الملف في جملة سابقة، فإنه لن يتم تضمينه مرة أخرى. لنفهم كيف يعمل هذا من خلال مثال. افترض أن لدينا ملف "my_functions.php" يحتوي على الكود التالي:
<?php function multiplySelf($var){ $var *= $var; // ضرب المتغير نفسه echo $var; } ?>
هذا سكربت PHP يحتوي على ملف "my_functions.php".
<?php // تضمين الملف require "my_functions.php"; // استدعاء الدالة multiplySelf(2); // خروج: 4 echo "<br>"; // إعادة تضمين الملف require "my_functions.php"; // استدعاء الدالة multiplySelf(5); // لا يتم تنفيذها ?>
عندما تشغل السكربت السابق، سترى رسالة خطأ مشابهة للآتي:خطأ حاسم: لا يمكن إعادة تعريف multiplySelf()سبب حدوث هذا هو أن 'my_functions.php' تم تضمينه مرتين، مما يعني أن الدالة multiplySelf() تم تعريفها مرتين، مما أدى إلى إيقاف تنفيذ السكربت من قبل PHP وإنتاج خطأ حاسم. الآن، أعد كتابة المثال السابق باستخدام require_once.
<?php // تضمين ملف require_once "my_functions.php"; // استدعاء الدالة multiplySelf(2); // خروج: 4 echo "<br>"; // إعادة تضمين الملف require_once "my_functions.php"; // استدعاء الدالة multiplySelf(5); // خروج: 25 ?>
كما ترونه، يمكن للسكربت العمل كما هو متوقع باستخدام require_once بدلاً من require.