• تفاوت دستور include با require در PHP
    #1
    Note 
    تفاوت دستور Include با Require در PHP:

    سلام
    دو دستور include و require در زبان پی اچ پی برای اضافه کردن یک فایل دیگر در فایل جاری بکار میرن و بسیار کاربردی هستن اما یک تفاوت مهم دارن!

    -اگر از دستور include استفاده کنید در صورتی که فایلی که include کردید وجود نداشته باشه PHP یک Warning میده و به کارش ادامه میده یعنی بقیه لاین ها رو هم میخونه چه خطا وجود داشته باشه و چه نداشته باشه!

    -اگر از دستور require استفاده کنید در صورتی که فایلی که require کردید وجود نداشته باشه PHP یک Fatal error میده و دیگه به کارش ادامه نمیده تا مشکل حل بشه.

    همونطور که از اسمهاشون هم معلومه ، include به معنی "شامل بودن" هست ولی require به معنی "نیاز داشتن".

    حالا به مثال توجه کنید:
    ما یه سند پی اچ پی با نام link.php داریم:
    [HTML]<html>
    <body>
    <a href="http://softafzar.net" target="_blank">Visit our website</a>
    </body>
    </html>

    [/HTML]

    و یک فایل index.php داریم که میخوام فایل link.php رو با دستور include بهش اضافه کنیم:
    کد:
    <html>
    <body>
    <?php include("link.php"); ?>
    <p>Difference between “include” and “require” in php</p>
    </body>
    </html>

    نتیجه در صورت موجود بودن فایل در هر دو دستور یکی هست:
    کد php:
    Visit our website

    Difference between “include” 
    and “require” in php 

    اما در صورتی فایل ما وجود نداشته باشه نتیجه استفاده از دستور include:
    [HTML]
    Warning: include(li2nk.php) [function.include]: failed to open stream: No such file or directory in C:\local\htdocs\a\index.php on line 3

    Warning: include() [function.include]: Failed opening 'li2nk.php' for inclusion (include_path='.;C:\local\php\PEAR') in C:\local\htdocs\a\index.php on line 3

    Difference between “include” and “require” in php
    [/HTML]
    هست توجه کنید که به کارش ادامه داده یعنی با وجود خطا جمله "Difference between “include” and “require” in php" هم چاپ شده.

    اما اگر از دستور require استفاده کنیم نتیجه این میشه:
    [HTML]
    Warning: require(li2nk.php) [function.require]: failed to open stream: No such file or directory in C:\local\htdocs\a\index.php on line 3

    Fatal error: require() [function.require]: Failed opening required 'li2nk.php' (include_path='.;C:\local\php\PEAR') in C:\local\htdocs\a\index.php on line 3
    [/HTML]
    در اینجا جمله چاپ نشده پس به کارش خودش ادامه نداده.

    موفق باشید :winksmiley02:

    پاسخ
    #2
    Note 
    سلام ممنون بابت مطلب مفیدتون من قبلا دیده بودم که بعضی جاها از include_once()‎ و require_once()‎ هم استفاده میکنن گشتم و فرقشون رو پیدا کردم گفتم اینجا هم بذارم شاید این سوال برای کسی پیش بیاد :wubsmiley:


    فرق تابع include_once()‎ با require_once()‎:
    * کلمه once یعنی «یک بار».

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

    پس، بهتر است از توابع include_once یا require_once استفاده کنید.

    این توابع کمک می کنند که اگر قبلاً یک فایل را ایمپورت کرده اید و به هر دلیلی دوباره آن فایل ایمپورت می شود، بار دو (و سوم و ...) دیگر ایمپورت صورت نمی گیرد، اما طبیعتاً اگر قبلاً ایمپورت نشده بود، ایمپورت صورت می گیرید.

    همین!

    فرق آن ها از نظر اینکه include یا require هستند نیز دقیقاً همان فرق دو تابع include و require است. یعنی include_once باعث می شود که اگر فایل مورد نظر پیدا نشد، بقیه کدها اجرا شوند. اما require_once از اجرای بقیه کدها جلوگیری می کند.(توضیحی که m0n0 w4ll در پست بالا دادن ^_^ )

    aftab.cc

    پاسخ
    ایجاد موضوع جدید   پاسخ به موضوع  

    موضوعات مرتبط با این موضوع...
    موضوع نویسنده پاسخ بازدید آخرین ارسال
    Note چطور با انتخابای متفاوت از فرم کوئری مناسب داشته باشم؟ mahbobe.prog 7 1,761 26-11-2014 ساعت 11:04
    آخرین ارسال: mahbobe.prog
    Note متفاوت بودن خروجی متد خراخوانی شده با متد اصلی mahbobe.prog 13 1,814 11-09-2014 ساعت 18:21
    آخرین ارسال: mahbobe.prog
    Note دستورات پایگاه داده maynoush 2 606 19-07-2014 ساعت 09:17
    آخرین ارسال: THE KNIGHT
    Note تفاوت file.inc.php با file.php REza mAX 6 1,232 16-01-2014 ساعت 13:53
    آخرین ارسال: REza mAX
    Note مشکل در اجرای دستورات سیمفونی در ویندوز IranPhp 4 773 21-11-2013 ساعت 14:59
    آخرین ارسال: IranPhp
    Note تفاوت بین دو زمان در php TroFun 2 729 29-10-2013 ساعت 11:39
    آخرین ارسال: Daniel
    Note Include کردن اتوماتیک همه فایل ها در یک مسیر PHP.sec 1 724 08-10-2013 ساعت 11:47
    آخرین ارسال: @EchO
    Note تفاوت this$ با ::self در PHP چیست؟ Php1 1 1,016 29-09-2013 ساعت 16:01
    آخرین ارسال: PHP.sec
    Note فایلهایی که در سند جاری include شده اند؟ SIAVASH 1 625 17-07-2013 ساعت 12:41
    آخرین ارسال: REza mAX
    Note تفاوت "==" با "===" در PHP SOFTAFZAR 0 728 24-02-2013 ساعت 20:54
    آخرین ارسال: SOFTAFZAR

    کاربرانِ درحال بازدید از این موضوع:   1 مهمان