آموزش توابع require و include در PHP

منتشر شده در 01 فوریه 2021 آخرین به روز رسانی در 01 فوریه 2021
مهندس محسن صادق نژاد
2218 1
آموزش تابع require تابع include تابع require_once و تابع include_once

این پست با مسیر متخصص php مرتبط است. مشاهده مسیر (Roadmap)

این پست با مسیر متخصص وردپرس مرتبط است. مشاهده مسیر (Roadmap)

باز هم با قسمتی دیگر از سری آموزش های PHP در خدمت شما عزیزان هستیم. در این مطلب ما قرار است در مورد تابع require و تابع include در PHP صحبت کنیم. همانطور که می دانید تابع require() ، تابع require_once() ، تابع ()include و تابع include_once() در وردپرس هم بسیار پر کاربرد است و در اکثر قالب ها یا افزونه های طراحی شده این 4 تابع به چشم می خورد.

بعضی مواقع نیاز است تا قسمتی از کدهایی که می زنیم را، در قسمت دیگری از برنامه عینا تکرار کنیم. در طراحی سایت ها نیز بعضا جهت خواناتر شدن کدها اقدام به قرار دادن کدهای هر بخش در فایل جداگانه‌ای می کنند. با این کار از تکرار کردن کدها در بعضی از قسمت ها جلوگیری می‌شود. فقط کافی است با کمک توابع require یا include کدهای مورد نیاز را به فایل خود اضافه کنیم.

نحوه استفاده از تابع require و include در PHP :

برای بهره بردن از دو تابع require و include می توانیم به یکی از دو روش پایین آنها را فراخوانی کرده و از این دو تابع استفاده کنیم.

<?php
 include('sample.php');
?>
<?php
 require('sample.php');
?>

با کمک کد های بالا، کدهای فایل sample.php را به فایل موجود می توانیم اضافه کنیم. در واقع مقداری که درون تابع include() و require قرار دادیم آدرس فایلی است که می خواهیم آن را جایگذاری کنیم.

در بخش پایین نیز به شیوه دیگری از دو تابع include و require استفاده شده است:

<?php
include 'sample.php';
?>
<?php
require 'sample.php';
?>

در دو عبارت بالا ما بخشی از کدهایی که نیاز داریم را در فایل sample.php قرار داده ایم و اکنون می توانیم با دستورات بالا آنها را در بخش هایی که نیاز داریم اضافه کنیم.

تفاوت تابع include و تابع require در PHP

تفاوت هایی در نحوه عملکرد تابع require و تابع include وجود دارد که می خواهیم آن را بررسی کنیم. عملکرد این دو تابع بسیار شبیه به هم است. اگر آدرس و نام فایل را در تابع های include و require به درستی قرار بدهیم نتایج یکسانی را مشاهده خواهیم کرد.

اما تفاوت این دو تابع در هنگام وجود خطا است. اگر از تابع include استفاده کنیم و فایلی که با include اضافه کرده‌ایم مشکلی داشته باشد(مثلا آدرس فایل را اشتباه ذکر کرده باشیم.) در خروجی به ما یک خطا از نوع E_WARNING را نمایش می دهد، ولی در اجرای مابقی کدها خللی ایجاد نمی‎‌شود.

اگر از require استفاده کنیم و فایلی که با require اضافه کردیم دارای خطایی و یا مشکلی باشد، تابع require از اجرای باقی برنامه جلوگیری می کند و یک پیغام خطا از نوع Fatal Error در سطح  E_COMPILE_ERROR به کاربر نمایش خواهد داد، در ادامه مابقی کد ها اجرا نخواهد شد.

تابع require_once و تابع include_once

گاهی مواقع در کد زنی های صفحات وب یا کدزنی های دیگری که انجام می‌دهیم، به دلیل گستردگی کار، نیاز به اضافه کردن فایل های جداگانه در برنامه می شود. یعنی این احتمال وجود دارد که به طور مثال فایلsample.php را ایجاد کرده ایم و آن را به کمک توابع require و یا include به فایل های footer.php و header.php اضافه کرده‌ایم. در فایل main.php  فایل های header.php و footer.php را با کمک تابع include و یا تابع require به فایل اصلی خود اضافه کرده‌ایم. در نتیجه دوبار فایل sample.php به main.php اضافه کرده ایم.

در این صورت اگر فایل اضافه شده مشکلی نداشته باشد و باعث بروز خطا نشود؛ سبب پردازش های بیش از حد و کاهش سرعت سایت و یا مشکلات دیگری می‌شود. به همین دلیل از تابع های require_once و include_once‎ استفاده می شود.

با استفاده از این توابع، فایلی که قرار است اضافه شود. در ابتدا بررسی شده و اگر در کدهای قبلی این فایل اضافه شده بود، برای بار دوم اضافه نخواهد شد.

تفاوت require_once و تابع include_once‎

تفاوت require_once و تابع include_once هم مانند تفاوت تابل include و require است. تفاوت این دو هم در هنگام بروز خطا در فایل اضافه شده است. اگر آدرس فایل اضافه شده اشتباه باشد یا خود محتویات فایل دارای مشکلاتی باشد و ما از تابع include_once‎ استفاده کرده باشیم. یک خطا از نوع  WARNING به کاربر نمایش می‌دهد و مابقی کدها اجرا می شوند.

اگر هم از تابع require_once استفاده کرده باشیم و فایل اصلی مشکل داشته باشد، یک خطا از نوع Fatal Error را دریافت خواهیم کرد و مابقی برنامه اجرا نخواهد شد.

خب به پایان آموزش “تابع require و تابع include در PHP” رسیدیم. چنانچه ابهام، اشکال و ایرادی داشتید؛ می توانید در قسمت کامنت ها مطرح نمایید. امیدواریم از آموزش تابع require در PHP و تابع include در PHP لذت برده باشید.