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

در زبان برنامه نویسی PHP شما میتوانید فایل های پی اچ پی را قبل از اینکه توسط سرور پردازش شوند در هم مخلوط کنید. در حالت کلی دو روش برای کپی کردن محتوای یک فایل پی اچ پی در فایل پی اچ پی جاری وجود دارد  :

  1.  تابع  include() در php 
  2. تابع require()  در php 

این بخش یکی از نقاط قوت پی اچ پی است که باعث میشود توابع مختلف ، هدر و فوتر های ثابت برای سایت و یا هر قسمتی که ممکن است چندین بار بصورت تکراری استفاده بکنید را ایجاد کنید . این بخش به توسعه دهندگان php کمک بزرگی کرده است مخصوصا زمانی که یک بخش برای بارهای متوالی تکرار شده است و برنامه نویس میخواهد آنرا ویرایش کند ، برنامه نویس برای ویرایش چند جای مختلف فقط یکجا را ویرایش میکند و نتیجه در تمام بخش ها اعمال میشود . 

 

تابع  include() در php

زمانی که ما از تابع include در php استفاده میکنیم یک فایل دقیقا با محتوایی که دارد در جائیی که از تابع include استفاده کردیم کپی میشود . اگر در فراخوانی و قرار دادن محتویات فایل مقصد خطائی رخ دهد ، تابع include یک پیغام خطا تولید خواهد کرد ولی روند اجرای بقیه ی کدهای ما مختل نمیشود و اسکریپت ادامه پیدا میکند . 

در نظر بگیرید شما میخواهید یک منو برای سایتتان بسازید . یک فایل جدید با نام menu.php میسازید و محتویات زیر را داخلش می نویسید : 

<a href="http://www.tutorialspoint.com/index.htm">Home</a> - 
<a href="http://www.tutorialspoint.com/ebxml">ebXML</a> - 
<a href="http://www.tutorialspoint.com/ajax">AJAX</a> - 
<a href="http://www.tutorialspoint.com/perl">PERL</a> <br />

 

حالا برای اینکه محتویات منو در سایتتان نمایش داده شود جایی که میخواهید فایل menu.php را include میکنید 

مثال  : 

<html>
   <body>
   
      <?php include("menu.php"); ?>
      <p>This is an example to show how to include PHP file!</p>
      
   </body>
</html>

 

نتیجه به شکل زیر خواهد بود : 

تابع include در php

 

تابع require() در php 

تابع require در زبان برنامه نویسی php دقیقا کارهای تابع include را برای شما انجام میدهد یعنی یک فایل را با تمام محتویاتی که درونش دارد ( قبل از اینکه توسط سرور پردازش شود ) داخل فایل جاری کپی میکند . 

 

تفاوت include و  require در php

تنها تفاوت require با تابع include این است که در require اگربه هر دلیلی فایل php مقصد فراخوانی نشد از ادامه ی پردازش و اجرای کدهای php جلوگیری میشود و همچنین یک خطا نمایش داده میشود ولی در include با وجود ، نمایش خطا باقی کدها پردازش و اجرا میشد . 

مثال :

مثال include را اینجا داریم ولی بجای menu.php مینویسیم xxmenu.php و  این کار را عمدا انجام میدهیم تا ببینیم که require در صورت وجود خطا چطور عمل میکند 

ابتدا یکبار  به صورت اشتباه include میکنیم و سپس یکبار به اشتباه require میکنیم تا ببینیم خروجی چه چیز میباشد : 

تابع include با نام فایل اشتباه : 

<html>
   <body>
   
      <?php include("xxmenu.php"); ?>
      <p>This is an example to show how to include wrong PHP file!</p>
      
   </body>
</html>

 

خروجی کدهای بالا : 

This is an example to show how to include wrong PHP file!

 

مثال بالا با تابع require با نام فایل اشتباه : 

<html>
   <body>
       
       <?php require("xxmenu.php"); ?>
       <p>This is an example to show how to include wrong PHP file!</p>
   
   </body>
</html>

خروجی : هیچ چیز ! چون بقیه کدها از زمانی که خطای require رخ داده پردازش فایل php متوقف شده و عملا کد های بعدی که یک رشته چاپ میکند اجرا نخواهد شد . 

 

نکته : ممکن است شما یک خطا یا یک error دریافت کنید و یا حتی هیچ چیز دریافت نکنید و صفحه سفید برای شما نمایش داده شود و نمایش و عدم نمایش خطای include و  require به پیکربندی php شما مربوط میشود . 

لطفا توجه کنید که برای یادگیری خوب زبان برنامه نویسی php شما میتوانید از یک دوره ی آموزش پروژه محور زبان پی اچ پی شروع کنید تا بصورت واقعی وارد یک پروژه ی عملی شوید.

همچنین بحث MVC در زبان پی اچ پی را هرگز فراموش نکنید و بعد از یادگیری زبان php بصورت کامل حتما به سراغ آن بروید.

اتمام درس