نمایش نتایج 1 تا 3 از 3

نام تاپیک: مشکل با دستور use در php

  1. #1

    مشکل با دستور use در php

    سلام
    خسته نباشین
    دستور use تو php چه کاربردی داره ؟

    وقتی این دو سه خط کد رو فراخوانی نمیکنم ، ارور پایین رو میده .


    use Kavenegar\KavenegarApi;use Kavenegar\Exceptions\ApiException;use Kavenegar\Exceptions\HttpException;


    وقتی کد های بالارو از برنامه حذف ارور پایین رو میده
    Fatal error: Class 'KavenegarApi' not found in C:\xampp\htdocs\stonetown.ir\controllers\insert.ph p on line 36

    کاربرد use اینجا چیه ؟
    داره دایرکتوری فراخوانی میکنه یا چی ؟
    اینجا چرا از require_once استفاده نکردن .

    کدهای بالا به خوبی کار می کنن ، وقتی من کدهای بالا رو میبرم توی کد های خودم که mvc هستش دیگه کار نمیکنه :
    نمیدونم مشکل از چیه ؟
    شاید use نمیتونه دایرکتوری رو بخونه یا چی ؟


  2. #2
    کاربر دائمی آواتار zamanphp
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    اصفهان
    پست
    118

    نقل قول: مشکل با دستور use در php

    دوست عزیز شما باید ابتدا در رابطه با namespace ها تو php کمی مطالعه کنید تا بفهمید برای چی هست
    namespace ها یه جور کدهای ما رو براساس دایرکتوری دسته بنده می کنند و use دقیقا برای همین هست که بگیم فلان فایل تو فلان دایرکتوری رو میخواهیم ازش استفاده کنیم
    این که require استفاده نشده دلیلش هم این هست که از autoloading داره استفاده میشه که در پست صحنه از همون require استفاده میشه
    و در سطح پیشرفته تر از composer استفاده میشه

  3. #3
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    1,853

    نقل قول: مشکل با دستور use در php

    همونجوری که دوستمون گفت مربوط میشه به namespace
    نیم اسپیس یجورایی دسته بندی توابع و کلاس هاست تا از تداخل نام ها جلوگیری بشه
    مثلا شما توی پروژت از 10 تا کتابخونه مختلف استفاده میکنی این 10 تا رو افراد مختلفی نوشتن در نتیجه ممکنه توابع یا کلاس های هم نام داشته باشن توشون
    این هم نام بودن توابع باعث میشه کد شما اررور بده
    مثلا دو تا تابع داری با نام action() که 2 کار مختلف میکنن اینا رو با هم بخای بارگزاری و استفاده کنی اررور میگیری چون همنامن
    ولی وقتی نیم اسپیس داشته باشن دیگه اررور نمیده و تداخل ندارن و اینجوری باید صداشون کنی


    namespace1\action();
    namespace2\action();



    اگه بخای بدون نیم اسپیس تابع یا کلاس رو فراخانی کنی میتونی با استفاده از use نام مستعار تعریف کنی براش
    اول مینویسی

    use namespace1\action

    بعد تابع رو صدا میزنی

    action()


    اینجا با استفاده از use اعلام میکنی که تابع action که من دارم صدا میزنم همون namespace1\action هستش

تاپیک های مشابه

  1. نشناختن دستور toast.maketext در آندروید استودیو
    نوشته شده توسط araman59 در بخش Android Studio
    پاسخ: 2
    آخرین پست: یک شنبه 28 دی 1393, 19:37 عصر
  2. پاسخ: 4
    آخرین پست: سه شنبه 23 مهر 1392, 06:57 صبح
  3. پاسخ: 3
    آخرین پست: چهارشنبه 03 فروردین 1390, 22:51 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •