/
  • تفاوت بین include و extends در oop

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی تفاوت بین include و extends در oop
    نویسنده پیام
    ImanAzadi آفلاین
    عضو
    ***

    ارسال‌ها: 246
    تاریخ عضویت: ۱۳۹۲ اسفند ۲
    اعتبار: 0
    تشکرها : 36
    ( 9 تشکر در 9 ارسال )
    ارسال: #1
    تفاوت بین include و extends در oop
    با سلام

    دوستان تفاوت include , extends چیه ؟

    مثال زیر رو در نظر بگیرید

    در فایل test.php یک متد به نام fff وجود دارد
    کد:
    include ("test.php");
    class a{

    private $r;

    public function __construct()
    {
    $r=new b();
    }

    public function xxx()
    {
    $this->r->fff;
    }

    }

    include ("test.php");

    class c extends b{

    public function xxx()
    {
        parent::fff();
    }

    }


    چه فرقی میکنه که یک کلاس رو اینکلود کنی و استفاده کنی یا اینکه ارث بری کنی ؟؟
    (آخرین ویرایش در این ارسال: ۱۳۹۴ مهر ۱۵ ۱۱:۲۲ صبح، توسط ImanAzadi.)
    ۱۳۹۴ مهر ۱۵ ۱۰:۴۶ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    shgninc آفلاین
    سید سجاد شاهچراغیان
    ***

    ارسال‌ها: 1,493
    تاریخ عضویت: ۱۳۸۹ خرداد ۱۹
    اعتبار: 32
    تشکرها : 1402
    ( 666 تشکر در 504 ارسال )
    ارسال: #2
    RE: تفاوت بین include و extends در oop
    عبارت extend مربوطه به مباحث شئ گرایی و برای ارث بری از یک شئ دیگه استفاده می شود اما با دستور include شما فایل پی‌اچ‌پی دیگری را در فایل جاری اینکلود می کنید، انگار که کدهای اون فایل را همونجا نوشته اید و بیشتر جهت بالا رفتن خوانایی برنامه و دسته بندی توابع و... استفاده می شود.
    __________________________________________________________________________
    سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
    انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

    [تصویر:  ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
    ۱۳۹۴ مهر ۱۵ ۰۱:۵۷ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : ImanAzadi
    ImanAzadi آفلاین
    عضو
    ***

    ارسال‌ها: 246
    تاریخ عضویت: ۱۳۹۲ اسفند ۲
    اعتبار: 0
    تشکرها : 36
    ( 9 تشکر در 9 ارسال )
    ارسال: #3
    RE: تفاوت بین include و extends در oop
    دوست عزیز میدونم مربوط به شی گرایی میشه
    استفاده از کلاس تو مثال بالا خودش نشون از شی گرایی بودن داره
    ولی تو همون شی گرایی هم تا فایل رو اینکلود نکنی نمیتونی ارث بری کنی
    ۱۳۹۴ مهر ۱۵ ۰۳:۲۷ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    Y.P.Y آفلاین
    ناظم کل
    *******

    ارسال‌ها: 2,781
    تاریخ عضویت: ۱۳۸۷ دي ۲۸
    اعتبار: 103
    تشکرها : 2181
    ( 4856 تشکر در 2220 ارسال )
    ارسال: #4
    RE: تفاوت بین include و extends در oop
    فکر کنم مثال رو کمی اشتباه/تودرتو نوشتی... ولی در کل فکر نمی کنم تفاوت چندانی داشته باشن، چون در جای خودشون مفید/مضر هستند. مگر اینکه قرار باشه از الگوی خاصی در تولید نرم افزارات پیروی کنی

    ولی سوال جالبه... فقط چند تا نکته رو بگم:
    هردو متدها و پروپرتی هارو در یک کلاس mix می کنن

    include دستوری مربوط به عملیات فایل هستش - که سرعتش هم نسبت به extends کمی بیشتره
    extends قابلیتی مربوط به عملیات کلاس هستش

    Include کردن کلاس با ساخت instance ای از کلاس B آغاز میشه و کاملاً کلاس B و A مستقل از هم هستند. و نمیتونه درجا هرتاثیری که بخواد روی کلاس B بزاره
    کد PHP:
    include_one 'FoodClass.php'

    class CarClass
    {
       new 
    FoodClass();

    Extend کردن کلاس با merge کردن کلاس B و A آغاز میشه. یا درواقع برند جدیدی رو ازش تولید می کنه. که میتونه درجا هرتاثیری که بخواد روی کلاس B بزاره
    کد PHP:
    class Sony extends LG
    {
       function 
    Foroosh()
       {
       }


    Extend کردن بسیار flexible هست - بخاطر overriding و...
    Include کرن محدوده و overriding هم نداره
    همین.


    درضمن از اونجایی که کلاسها معمولاً حاوی دیتا نیستن و ثابت هستند، استفاده از require_once یا include_once به صرفه تره...
    همچنین دستواتی مثل include, echo, require, exit و... تابع نیستند، بلکه language construct هستند پس نباید درش از پرانتز استفاده بشه.
    __________________________________________________________________________
    وبلاگ: Yousha.Blog.ir

    صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
    http://gulfnews.com/opinion/thinkers/ira...i-1.500997
    (آخرین ویرایش در این ارسال: ۱۳۹۴ مهر ۱۵ ۱۱:۲۵ عصر، توسط Y.P.Y.)
    ۱۳۹۴ مهر ۱۵ ۰۶:۳۵ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : Reza ImanAzadi sara147
    ImanAzadi آفلاین
    عضو
    ***

    ارسال‌ها: 246
    تاریخ عضویت: ۱۳۹۲ اسفند ۲
    اعتبار: 0
    تشکرها : 36
    ( 9 تشکر در 9 ارسال )
    ارسال: #5
    RE: تفاوت بین include و extends در oop
    نقل قول: همچنین دستواتی مثل include, echo, require, exit و... تابع نیستند، بلکه language construct هستند پس نباید درش از پرانتز استفاده بشه.

    دوست عزیز اینو متوجه نشدم ؟؟؟ منظورتون چیه نیاید از پرانتز استفاده کرد ؟؟؟ مگه exit یا include بدون پرانتز کار میکنه
    ۱۳۹۴ مهر ۱۶ ۰۷:۲۹ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    shgninc آفلاین
    سید سجاد شاهچراغیان
    ***

    ارسال‌ها: 1,493
    تاریخ عضویت: ۱۳۸۹ خرداد ۱۹
    اعتبار: 32
    تشکرها : 1402
    ( 666 تشکر در 504 ارسال )
    ارسال: #6
    RE: تفاوت بین include و extends در oop
    (۱۳۹۴ مهر ۱۵ ۰۶:۳۵ عصر)Y.P.Y نوشته شده توسط:  ...
    کد PHP:
    class Sony extends LG
    {
       function 
    Foroosh()
       {
       }


    Extend کردن بسیار flexible هست - بخاطر overriding و...
    Include کرن محدوده و overriding هم نداره
    ...
    مهندس درباره این تکه کدی که گفتید، بالاخره کلاس پدر باید یه جایی باشه که بشه ازش اکستند کرد. الان این جا باید یا بالاتر کلاس پدر تعریف شده باشد یا با همون include فایل مربوط به کلاس پدر در این فایل وارد شود. درسته؟
    __________________________________________________________________________
    سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
    انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

    [تصویر:  ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
    ۱۳۹۴ مهر ۱۶ ۱۱:۲۵ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    Y.P.Y آفلاین
    ناظم کل
    *******

    ارسال‌ها: 2,781
    تاریخ عضویت: ۱۳۸۷ دي ۲۸
    اعتبار: 103
    تشکرها : 2181
    ( 4856 تشکر در 2220 ارسال )
    ارسال: #7
    RE: تفاوت بین include و extends در oop
    نقل قول: دوست عزیز اینو متوجه نشدم ؟؟؟ منظورتون چیه نیاید از پرانتز استفاده کرد ؟؟؟ مگه exit یا include بدون پرانتز کار میکنه
    آره کار میکنه. چیز خاصی هم نیست، یک اصوله فقط.


    نقل قول: مهندس درباره این تکه کدی که گفتید، بالاخره کلاس پدر باید یه جایی باشه که بشه ازش اکستند کرد. الان این جا باید یا بالاتر کلاس پدر تعریف شده باشد یا با همون include فایل مربوط به کلاس پدر در این فایل وارد شود. درسته؟
    بالاتر تعریف شده. مثلاً Angel
    __________________________________________________________________________
    وبلاگ: Yousha.Blog.ir

    صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
    http://gulfnews.com/opinion/thinkers/ira...i-1.500997
    ۱۳۹۴ مهر ۱۶ ۱۲:۱۱ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : shgninc
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS