PDA

View Full Version : include or require



maysamscript
دوشنبه 07 آبان 1386, 13:58 عصر
سلام خدمت دوستان عزیز
فرق بین include با require چیه و چه زمانی باید استفاده بشن همچنین include_once و require_once
:متفکر::متفکر:

tabib_m
دوشنبه 07 آبان 1386, 18:38 عصر
سلام
ورود شما رو به برنامه نویس خیر مقدم عرض می کنم :)
-----
فکر میکنم اگر جستجو میکردی پیدا می کردی
در هر صورت.
در include (http://ir2.php.net/manual/en/function.include.php) اگر به هر دلیلی، عمل فراخوانی با خطا مواجه شد و در نهایت صفحه ی مورد نظر فراخوانی نشد، تنها یک ارور نمایش داده میشه و سپس ادامه ی برنامه اجرا میشه.
اما در require (http://ir2.php.net/manual/en/function.require.php) در صورتی که عمل فراخوانی با خطا مواجه شد، بعد از نمایش ارور، دیگه ادامه ی برنامه اجرا نمیشه.
این برای جاهایی هست که فراخوانی شدن فایل مربوطه، واجب هست! مثلا فراخوانی صفحه ای که قراره login بودن کاربر رو چک کنه. خوب اگر از include استفاده کنی، در صورتی که این صفحه به هر دلیلی فراخوانی نشه، برنامه ادامه ی کار رو میده و صفحه ای که نباید نمایش داده بشه، نمایش داده میشه. و وقتی که از require استفاده کنی، بعد از ارور برنامه ادامه پیدا نمیکنه و صفحه ی مذکور نمایش داده نمیشه.

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


Page A:
------------
include("B");

include_once("C");
------------

Page B:
------------
include_once("C");
------------

در این کد، وقتی که صفحه ی A فراخوانی میشه، کدهای صفحه ی B داخل صفحه ی A اجرا میشه، یعنی در حقیقت انگار که محتویات صفحه ی A اینجوری باشه:


Page A:
------------
include_once("C"); //Page B Codes

include_once("C");
------------

یعنی در حقیقت صفحه ی C دوبار در صفحه ی A فراخوانی میشه. اما از اونجایی که از تابع include_once (http://ir2.php.net/manual/en/function.include-once.php) به جای include استفاده شده، این تابع فقط دفعه ی اول صفحه ی C رو فراخوانی میکنه و در دفعات بعد دیگه این کار انجام نمیشه...

موفق باشید.

maysamscript
سه شنبه 08 آبان 1386, 14:39 عصر
فکر میکنم اگر جستجو میکردی پیدا می کردی
ماتازه کارا رو ببخشید:اشتباه:

hidensoft
سه شنبه 08 آبان 1386, 17:41 عصر
فکر میکنم استفاده از require مفید تر باشه !

sweb
سه شنبه 08 آبان 1386, 19:59 عصر
فکر میکنم استفاده از require مفید تر باشه !
موافقم این دستور برای فراخوانی کدهایی استفاده میشه که در صورت عدم وجود اونها بقیه کد ها اجرا نخواهد شد و این می تونه برای روند صحیح اجرای برنامه فاکتور مهی باشه!

peyman1987
سه شنبه 08 آبان 1386, 20:14 عصر
همیشه نمیشه گفت استفاده از require و یا include بهتره. بستگی به نیاز برنامه نویس و شرایط داره. بعضی جاها شما میخواین یه تکه کد کم اهمیت رو اجرا کنین که در صورت اجرا نشدن مساله ای برای کد پیش نمیاد خوب اینجا میتونین از include استفاده کنین.