۴ arman najafi
فرق بین include و include_once و require چیه؟
جامعه پی اچ پی ایجاد شده در ۰۸ فروردین ۱۴۰۲

سلام وقت بخیر

میخواستم بدونم فرق include وinclude_once و require در چی هستش؟

سلام آرمان عزیز

در زبان برنامه نویسی PHP، دستورات include، include_once و require برای اضافه کردن یک فایل به برنامه‌ی شما استفاده می‌شوند. تفاوت این دستورات به شرح زیر است:

  1. include: این دستور فایل مورد نظر را به برنامه شما اضافه می‌کند. اگر فایل مورد نظر یافت نشد، یک warning چاپ می‌شود و اجرای برنامه ادامه پیدا می‌کند.
  2. include_once: این دستور همانند include عمل می‌کند با این تفاوت که فایل تنها یک بار اضافه می‌شود. به عبارت دیگر، اگر فایل مورد نظر در قبل از اجرای دستور include_once قبلاً اضافه شده باشد، دوباره اضافه نخواهد شد.
  3. require: این دستور همانند include عمل می‌کند با این تفاوت که در صورت عدم وجود فایل، برنامه خطای فوری را نشان می‌دهد و اجرای برنامه متوقف می‌شود.
  4. require_once: این دستور همانند require عمل می‌کند با این تفاوت که فایل تنها یک بار اضافه می‌شود. به عبارت دیگر، اگر فایل مورد نظر در قبل از اجرای دستور require_once قبلاً اضافه شده باشد، دوباره اضافه نخواهد شد.

با توجه به توضیحات بالا، شما باید بر اساس نیاز خودتان بین این 4 دستور انتخاب کنید. به طور کلی، اگر فایل مورد نظر برای اجرای برنامه شما لازم است، باید از require یا require_once استفاده کنید، در غیر این صورت می‌توانید از include یا include_once استفاده کنید.

احمدرضا فاطمی کیا ۰۸ فروردین ۱۴۰۲، ۰۹:۵۶

خیلی ممنون بابت توضیح کاملتون

میشه راجب تابع set_include_path و get_include_path هم توضیح بدین؟

arman najafi ۰۸ فروردین ۱۴۰۲، ۱۰:۰۳

توابع set_include_path() و get_include_path() به شما امکان می‌دهند تا مسیرهای جداگانه برای جستجوی فایل‌های include در برنامه خود تعریف کنید.

تابع set_include_path() به شما این امکان را می‌دهد که مسیرهایی که می‌خواهید PHP در آن‌ها به دنبال فایل‌های include بگردد را تعریف کنید. این تابع یک رشته را به عنوان ورودی می‌گیرد که در آن می‌توانید مسیرهای مورد نظر خود را با استفاده از کاراکتر PATH_SEPARATOR از یکدیگر جدا کنید. به عنوان مثال، فرض کنید می‌خواهید سه مسیر /path/to/first, /path/to/second و /path/to/third را به عنوان مسیرهای جستجوی فایل‌های include در PHP تعریف کنید، می‌توانید از کد زیر استفاده کنید:

set_include_path('/path/to/first' . PATH_SEPARATOR . '/path/to/second' . PATH_SEPARATOR . '/path/to/third');

از آنجا که تغییراتی که در set_include_path() ایجاد می‌کنید بر روی تمامی برنامه‌های PHP اعمال می‌شود، باید دقت کنید که مسیرهایی که تعریف می‌کنید باید برای تمامی فایل‌های include در برنامه شما قابل دسترس باشد.

تابع get_include_path() نیز به شما اجازه می‌دهد تا مسیرهای جاری جستجوی فایل‌های include در PHP را بازیابی کنید. این تابع یک رشته را به عنوان خروجی برمی گرداند که در آن مسیرهای جستجوی فایل‌های include در PHP با استفاده از کاراکتر PATH_SEPARATOR جدا شده اند. به عنوان مثال، با فرض مسیرهایی که در مثال قبل تعریف شدند، می‌توانید از کد زیر برای بازیابی مسیرهای جستجوی فایل‌های include استفاده کنید:

$includePath = get_include_path();

برای اینکه به درک کاملی ازش برسید پیشنهاد میکنم در کدهاتون امتحان کنید.

بهترین پاسخ
احمدرضا فاطمی کیا ۰۸ فروردین ۱۴۰۲، ۱۰:۵۰

ممنون از توضیح کامل شما

arman najafi ۰۹ فروردین ۱۴۰۲، ۱۸:۴۲