تفاوت Require و Include در PHP چیست؟
19 خرداد 1403 1403-03-20 13:49تفاوت Require و Include در PHP چیست؟
تفاوت Require و Include در PHP چیست؟
Require و Include در PHP – زبان برنامهنویسی PHP یکی از پرکاربردترین زبانها در توسعه وب است که بهطور گسترده برای ساخت صفحات وب پویا و تعاملی استفاده میشود. PHP که مخفف “Hypertext Preprocessor” است، بهطور مستقیم در سرور اجرا میشود و نتایج آن بهصورت HTML به مرورگر کاربران ارسال میشود.
دو دستور Require و Include در PHP برای وارد کردن فایلهای دیگر به داخل یک اسکریپت استفاده میشوند. این دستورات به توسعهدهندگان امکان میدهند که کدها را به بخشهای کوچکتر تقسیم کرده و از قابلیت استفاده مجدد از کد بهرهمند شوند. تفاوت اصلی بین این دو دستور در نحوه مدیریت خطاها است. دستور include در صورت عدم موفقیت در وارد کردن فایل، فقط یک هشدار (warning) میدهد و اجرای اسکریپت ادامه مییابد، در حالی که دستور require در همان شرایط یک خطای مرگبار (fatal error) ایجاد میکند و اجرای اسکریپت را متوقف میسازد. در ادامه بیشتر به بررسی این دو دستور میپردازیم.
تفاوت Require و Include در PHP
دو دستور Require و Include در PHP برای وارد کردن و اجرای فایلهای دیگر در اسکریپت استفاده میشوند. این دو دستور شباهتها و تفاوتهایی دارند که هرکدام را برای شرایط خاصی مناسب میسازد. در زیر تفاوتها و شباهتهای این دو دستور را بررسی میکنیم.
به طور کلی:
- require: برای فایلهای ضروری که وجود آنها برای اجرای صحیح اسکریپت لازم است.
- include: برای فایلهای اختیاری که نبود آنها نباید مانع اجرای اسکریپت شود.
- require_once و include_once: برای جلوگیری از وارد کردن چندباره فایلها و ایجاد خطاهای احتمالی.
شباهتها
- عملکرد اصلی: هر دو دستور فایل مشخصشده را وارد اسکریپت فعلی میکنند و کد داخل آن را اجرا میکنند.
- مسیر دهی فایل: هر دو دستور میتوانند از مسیر نسبی یا مطلق برای مشخص کردن فایل استفاده کنند.
تفاوتها
خطاهای زمان اجرا
- require: اگر فایلی که میخواهید وارد کنید وجود نداشته باشد یا در دسترس نباشد، یک خطای کشنده (fatal error) تولید میکند و اجرای اسکریپت متوقف میشود.
- include: اگر فایلی که میخواهید وارد کنید وجود نداشته باشد یا در دسترس نباشد، یک خطای هشدار (warning) تولید میکند ولی اجرای اسکریپت ادامه مییابد.
استفاده در ساختارهای شرطی
به دلیل نحوه برخورد با خطاها، استفاده از require در جاهایی که وجود فایل ضروری است توصیه میشود. برای مثال، برای وارد کردن فایلهای اصلی تنظیمات یا فایلهایی که عدم وجود آنها منجر به عدم عملکرد صحیح برنامه میشود.
include بیشتر برای فایلهای غیرضروری یا اختیاری استفاده میشود، مانند قالبهای صفحه که عدم وجود آنها نباید اجرای کل برنامه را متوقف کند.
مثالها:
برای require:
اگر فایل config.php وجود نداشته باشد، اجرای اسکریپت متوقف میشود //
require ‘config.php’;
کدهای بعد از require فقط در صورت وجود فایل config.php اجرا میشوند //
echo “این کد فقط در صورت وجود فایل config.php اجرا میشود.”;
برای include:
اگر فایل header.php وجود نداشته باشد، یک خطای هشدار تولید میشود ولی اسکریپت ادامه مییابد //
include ‘header.php’;
کدهای بعد از include حتی در صورت عدم وجود فایل header.php اجرا میشوند //
echo “این کد حتی در صورت عدم وجود فایل header.php اجرا میشود.”;
require_once و include_once
علاوهبر require و include در PHP، نسخههای دیگری به نام require_once و include_once نیز وجود دارند که تضمین میکنند فایل مشخصشده فقط یکبار وارد میشود، حتی اگر چندین بار فراخوانی شوند. این ویژگی برای جلوگیری از مشکلات احتمالی ناشی از وارد کردن چندباره یک فایل (مانند تعریف چندباره توابع یا کلاسها) مفید است.
آموزش کامل استفاده از دستورات Require و Include در PHP برای مبتدیان
در این قسمت استفاده از این دستورات را بهطور کامل برای مبتدیان توضیح میدهیم.
دستور include
دستور include برای وارد کردن فایلهایی استفاده میشود که وجود آنها برای ادامه اجرای اسکریپت ضروری نیست. اگر فایل موردنظر وجود نداشته باشد، یک خطای هشدار (warning) تولید میشود، ولی اجرای اسکریپت ادامه مییابد.
مثال:
فرض کنید فایلی به نام header.php دارید که حاوی کدهای HTML برای سربرگ وبسایت شما است:
<!– header.php –>
<!DOCTYPE html>
<html>
<head>
<title>وبسایت من</title>
</head>
<body>
<header>
<h1>خوش آمدید به وبسایت من</h1>
</header>
برای وارد کردن این فایل در اسکریپت اصلی خود، از دستور include استفاده کنید:
<!– index.php –>
<?php
include ‘header.php’;
?>
<p>این محتوای صفحه اصلی است.</p>
</body>
</html>
در اینجا، فایل header.php در ابتدای index.php وارد میشود و محتوای آن نمایش داده میشود.
دستور require
دستور require برای وارد کردن فایلهایی استفاده میشود که وجود آنها برای ادامه اجرای اسکریپت ضروری است. اگر فایل موردنظر وجود نداشته باشد، یک خطای کشنده (fatal error) تولید میشود و اجرای اسکریپت متوقف میشود.
مثال:
فرض کنید فایلی به نام config.php دارید که حاوی تنظیمات پایگاه داده است:
<!– config.php –>
<?php
$db_host = ‘localhost’;
$db_user = ‘root’;
$db_pass = ‘password’;
$db_name = ‘my_database’;
?>
برای وارد کردن این فایل در اسکریپت اصلی خود، از دستور require استفاده کنید:
<!– index.php –>
<?php
require ‘config.php’;
// اتصال به پایگاه داده
$conn = new mysqli($db_host, $db_user, $db_pass, $db_name);
if ($conn->connect_error) {
die(“اتصال به پایگاه داده ناموفق بود: ” . $conn->connect_error);
}
?>
<p>اتصال به پایگاه داده موفقیتآمیز بود.</p>
در اینجا، فایل config.php در ابتدای index.php وارد میشود و اگر این فایل وجود نداشته باشد، اسکریپت متوقف میشود و خطا نمایش داده میشود.
دستورات include_once و require_once
این دستورات مشابه include و require هستند، با این تفاوت که اطمینان میدهند فایل مشخصشده فقط یکبار وارد شود. این ویژگی برای جلوگیری از مشکلات احتمالی ناشی از وارد کردن چندباره یک فایل (مانند تعریف چندباره توابع یا کلاسها) مفید است.
فرض کنید فایلی به نام functions.php دارید که حاوی توابعی است که در اسکریپت شما استفاده میشوند:
<!– functions.php –>
<?php
function greet($name) {
return “سلام، ” . $name . “!”;
}
?>
برای وارد کردن این فایل در اسکریپت اصلی خود، از دستور include_once یا require_once استفاده کنید:
<!– index.php –>
<?php
include_once ‘functions.php’;
echo greet(“جهان”);
?>
<p>این محتوای صفحه اصلی است.</p>
سخن پایانی
درنتیجه، دستورات require و include در PHP ابزارهای قدرتمندی برای وارد کردن فایلهای خارجی به داخل اسکریپتها هستند، اما تفاوتهای کلیدی در نحوه مدیریت خطاها دارند که باید مورد توجه قرار گیرند. دستور include، با دادن هشدار (warning) در صورت عدم موفقیت در وارد کردن فایل، به اسکریپت اجازه میدهد که به اجرای خود ادامه دهد. این ویژگی زمانی مفید است که فایل مورد نظر حیاتی نباشد و عدم وجود آن نباید باعث توقف کامل برنامه شود.
آکادمی چابک، با برگزاری دورههای تخصصی در زمینههای برنامهنویسی، کسب و کار و دیگر حوزههای فنی، به نیروهای فنی کمک میکند تا با این مفاهیم و بهترین شیوههای استفاده از آنها آشنا شوند. شرکت در دورههای آکادمی چابک میتواند راهی موثر برای ارتقاء مهارتها و تسلطبر تکنیکهای پیشرفته برنامهنویسی PHP باشد.
منابع