PDA

View Full Version : فرق include و require



yegane8
چهارشنبه 23 مرداد 1392, 10:37 صبح
سلام
اگه یه فایل رو include کنیم مثل همون import تو جاوا می مونه ؟
و اگر require کنم یعتی انگار همه چیزی که تو اوون فابل هست رو کپی کردیم جایی که require کردیم؟

MMSHFE
چهارشنبه 23 مرداد 1392, 10:46 صبح
نه هر دو دستور برای ضمیمه کردن فایل هستن و دقیقاً انگار محتوای فایل ضمیمه شده رو همونجایی که ضمیمه کردین، تایپ کرده باشین. بطور کلی PHP چهار دستور برای ضمیمه کردن فایل داره:
include - فایل رو ضمیمه میکنه و اگه به هر دلیلی نتونه (آدرس اشتباه و...) یک هشدار E_WARNING میده و بقیه اسکریپت رو اجرا میکنه (مناسب برای ضمیمه کردن اسکریپتهای جانبی مثل وضعیت آب و هوا و...).
require - فایل رو ضمیمه میکنه و اگه به هر دلیل نتونه (آدرس اشتباه و...) یک خطا E_ERROR میده و بقیه اسکریپت اجرا نمیشه (مناسب برای ضمیمه کردن اسکریپتهای اصلی و پایه مثل تنظیمات سایت و...).
include_once - مشابه include با این تفاوت که اگه فایل قبلاً ضمیمه شده باشه، دوباره ضمیمه نمیکنه.
require_once - مشابه require با این تفاوت که اگه فایل قبلاً ضمیمه شده باشه، دوباره ضمیمه نمیکنه.
-----
دقت کنید که در فایلهایی که یک تابع، کلاس و... تعریف کرده باشن، ضمیمه شدن مجدد موجب بروز خطای Duplicate Definition میشه که اجازه نمیده بقیه اسکریپت اجرا بشه و بهتره از نسخه once_ استفاده کنید.