آموزش PHP (گام اول) شی گرایی 1

دوره پیشرفته PHP مه 2015 05

با سلام , بالاخره بعد از مدتی دروه حرفه ای PHP را آغاز کردم و مباحث پیشرفته PHP را با یکدیگر دنبال خواهیم کرد. پیش نیاز این جلسه گذراندن دوره مقدماتی PHP هست که قبلا در سایت منتشر شده . در اولین جلسه با شی گرایی آشنا خواهیم شد. ویدیو این قسمت را از باکس زیر میتوانید دانلود کنید : (فایل ویدیویی با فرمت 7z فشرده شده و برای اکسترک باید از برنامه 7zip استفاده کنید)

دانلود فیلم آموزشی
لینک دانلود19 مگابایت30 دقیقه

 

جزوه این قسمت:

تعریف شخصی بنده از شی گرایی اینه : شی گرایی یعنی بسته بندی توابع و متغییر های مربوط به هم و انتخاب یک نام برای این بسته

در ابتدا باید یک کلاس تعریف کرد و در حقیقت بسته مورد نظرمون را ایجاد کنیم :

که در بسته بالا ما نام myobj را انتخاب کردیم , خب حالا داخل بسته ایجاد شده (داخل آکولاد) متغییر و توابع مورد نیاز را قرار میدهیم. برای تعریف متغییر در داخل بسته کلاس باید ابتدا کلمه کلیدی var را بکار ببریم و سپس نام متغییر را وارد کنیم , دقت کنید در هنگام تعریف متغییر در کلاس امکان مقدار دهی اولیه نیست :

و به همین ترتیب هر تعداد متغییری که لازم بود درون کلاس تعریف میکنیم. برای تعریف تابع درون کلاس به همان شیوه قبل اقدام میکنیم :

اما در یک کلاس توابع و متغییر ها باید با یکدیگر در ارتباط باشند و توابع به متغییر ها دسترسی داشته باشند , برای این کار از اشاره گر this$ استفاده میشود . مثلا تابع get_a را برا برگرداندن مقدار متغییر a ایجاد می کنم :

همچنین برای تغییر متغییر a تابع set_a را به شکل زیر ایجاد میکنم :

 

با تعریف کلاس یک نقشه برای ایجاد شی ساختیم ,حال زمان ایجاد یک شی است. کلاس الگویی ایجاد یک شی است مثل نقشه ساختمان که الگو ساخت یک ساختمان است ولی یک ساختمان نیست. برای ایجاد شی از روی الگوی کلاس باید شی را نمونه سازی کنیم , برای اینکار به شکل زیر اقدام میکنیم :

در خط ۱۹ ضمن تعریف یک کلاس یک شی از این کلاس نمونه سازی کردیم که نام این شی را one قرار دادیم , عبارت new یک دستور برای تخصیص حافظه به شی است و در نهایت نام کلاسی که شی باید از روی آن نمونه سازی شود را وارد کردیم که در اینجا از کلاس myobj یک شی نمونه سازی کردیم.

حال برای فراخوانی توابع  از شی ایجاد شده به شکل زیر اقدام میکنیم , مثلا من قصد دارم تابع start مربوط به شی one را فراخوانی کنم :

در خط بیستم تابع start را از شی one فراخوانی کردیم و اگر صفحه را اجرا کنید متوجه عبارتی که تابع start چاپ میکند خواهید شد. همچنین برای استفاده از سایر متد ها باز به همین شکل اقدام میشود مثلا از تابع set_a برای مقدار دهی به متغییر a استفاده میکنم :

اما برای فراخوانی متغییر از یک شی میتوان یک تابع درون کلاس مربوط به شی تعریف کرد که مقدار متغییر را برگرداند (return) که برای اینکار ما تابع get_a را ایجاد کردیم , همچنین میتوان مستقیما مقدار متغییر a را بدست آورد مثلا :

در دستورات بالا ما در خط ۲۱ متغییر a را از شی one فراخوانی کردیم و آنرا با دستور echo چاپ کردیم.

دقت کنید همانطور که از روی یک نقشه ساختمان میتوان چند ساختمان ساخت یا یک تابع را میتوان چند بار فراخوانی کرد , به همین صورت میتوان از یک کلاس چند شی نمونه سازی که برای هر کدام یک حافظه مجزا در نظر گرفته می شود و متغییر های آنان با یکدیگر هیچ ارتباطی ندارد. مثلا اگر از روی کلاس بالا چند شی نمونه سازی شد هر کدام از اشیا یک متغییر با نام a دارند که کاملا از یکدیگر مجزا اند و تغییر هر کدام تاثیری بر دیگری ندارد :

 

فایل های پروژه این جلسه را میتوانید از باکس زیر دانلود کنید :

دانلود فایل های پروژه جلسه اول
لینک دانلود0.1 مگابایت
دیدگاه ها
  • danger1875 گفت:

    دمت گرم 😉

  • ali_nilofar گفت:

    مرسی استاد.
    خسته نباشید.

  • mehran گفت:

    مرسی حسین جان عاااااالی بود

  • islami گفت:

    خیلی وقته ویدئوی آموزش قرار ندادید لطفا ویدئو اموزشی قرار بدید

  • kamal گفت:

    درود
    بحث php خیلی طولانی هست
    اگه بوت استراپ رو بگید تموم شه بره قالش کنده شده خیلی بهتره
    البته بنظر من
    ولی در هر حال صلاح سایت مستر پروگرامر شفیعیان داند

    • حسین شفیعیان گفت:

      درود کمال جان
      بنده نمی خوام نخصصی به یه موضوع بپردازم چون در اینصورت مخاطبین سایتم محدود میشن و باید طیف متعددی از آموزش ها رو در سایت بزارم
      البته بنده تاکیدی خاصی بر دوره بوت استرپ دارم ولی مرسی از پیشنهادت

  • koomeil گفت:

    بسیار عــــالـــی . خسته نباشی 🙂

  • سیدرضا سیدموسوی گفت:

    سلام حسین جان
    خسته نباشی وخدا قوت
    ممنون بابت فیلم اموزشی
    لطفا وقتی فیلم منتشر میکنید از طریق ایمیل اطلاع رسانی کنید

    • حسین شفیعیان گفت:

      سلام
      من وقت بزارم و آموزش ضبط کنم و رایگان منتشر کنم , تازه خبرتون هم بکنم !؟؟ 😀
      مرسی سید جان

      • سیدرضا سیدموسوی گفت:

        سلام حسین جان
        بنده نمیگم رایگان فیلم اموزشی منتشر کنید پولی هم باشه مشکلی نیست چون خودم میدونم چقدر زمان میبره و…

        • حسین شفیعیان گفت:

          سید جان شما میتونی از نرم افزار های فید خوان استفاده کنید تا به محز بروز شدن یک سایت بهت اطلاع بده – فایر فاکس هم فکر کنم چنین افزونه ای داشت

  • mohadese گفت:

    سلام خوشحال شدم دوره پیشرفته پی اچ پی گذاشتید ممنون

  • Esmat گفت:

    Hi Hossin would you like to continue HTML and CSS for us if you don’t care about that please tell us
    thank you for teaching

  • Esmat گفت:

    hi again i was downloaded your new lessen and i couldn’t opened with winRAR can you help us how do that please
    thank you

  • Esmat گفت:

    Thank you mate

  • masoud1450 گفت:

    سلام حسین جان ممنون واسه آموزشات.
    می خواستم بپرسم php پیشرفتش کلا چند جلسه دیگه میشه؟
    با تشکر

    • حسین شفیعیان گفت:

      سلام و تشکر
      هنوز سر فصل ها رو آماده نکردم ولی مباحثی مثل امنیت – کار با پایگاه داده − کار با xml و … را در این دوره قرار دادم که فکر میکنم جمعا ۲۰ جلسه ای بشه و بعد از دوره پیشرفته دوره پروژه محور را ضبط میکنم که در اون دروه فقط بر روی پروژه های کار خواهیم کرد و خلاصه یه خروجی مناسب تحویلتان میدم , البته ریتم انتشار آموزش ها بستگی به استقابل و نظرات شما داره
      موفق باشید

  • danger1875 گفت:

    سلام این نظر رو گذاشتم که بگم ما همیشه هستیم و حمایتت میکنیم حسین جان 🙂

    • حسین شفیعیان گفت:

      سلام
      تشکر از شما و همه ی دوستان عزیز که با ارسال نظر آموزش ها رو حمایت میکنید

  • شهرام گفت:

    عالی بود ممنون

  • Esmat گفت:

    Hi Hussin can you put new the lessen for us plz we still waiting for you thank you

  • danger1875 گفت:

    سلام.
    اول خواستم واسه فیلم های که منتشر میکنی تشکر کنم
    دوتا سوال هم دارم
    1 واسه ضبط ویدیو ها از چه برنامه ای استفاده میکنی؟
    2واسه درست کردن این قسمت اول فیلم ها از چه برنامه ایی استفاده میکنی
    با تشکر
    D:

    • حسین شفیعیان گفت:

      سلام
      برای ضبط ویدئو ها از TechSmith.C.Studio.v7 استفاده میکنم – البته دارم به سیستم عامل ابونتو سوئیچ میکنم و از record my desktop استفاده خواهم کرد.
      قسمت اول فیلم را یکی از دوستانم که با نام ali tna یا pc.pro فعالیت دارند زحمتش را کشیدند و اگر این کامنت رو میخونن همینجا بازم ازشون تشکر میکنم

  • Esmat گفت:

    Hi can you put a new movie for us please i’m still waiting for you
    thank you

  • Esmat گفت:

    hi danger if you want record movie on your desktop you can use ezvid is the best application in the world

    • حسین شفیعیان گفت:

      مرسی از شما , من ترجمه میکنم 😀
      در جواب به کاربری danger که برنامه ی ضبط فیلم از دسکتاپ نیاز داشتند برنامه ی ezvid را معرفی کردند
      مرسی از شما – thank you mate

  • Esmat گفت:

    Hi hussin how can i change my cover photo plz tell me
    thank you

  • Esmat گفت:

    Hi hussin I have a question if it’s impossible for you plz tell me the answer.
    The question is what language style the programmer people using for creating application and software an example Dropbox, Facebook, android applications and IOS application or anything else like that. Please tell me the answer its interesting for me I would like to learn that. Thank you nice attention

    • حسین شفیعیان گفت:

      hi Esmat
      Java language, one of the most powerful programming languages in the world.
      the language is very flexible and special feature is the possibility that in many of the platform .
      However, many services, a combination of several languages are used .
      programs for writing IOS use of Xcod .
      and each one ‘s expertise needed
      you ought to see in what you desire to work for you and your decision.

      • سعید گفت:

        سلام
        میگم یه کلاس زبان انگلیسی هم بزارید بد نیست با خوندن نظرات کلی انگلیسی یاد گرفتم ممنون

  • Esmat گفت:

    how about the second question

  • Esmat گفت:

    Thank you for your nice answer it
    Can you teach us the Java style for creating application and software and if you don’t want do that please introduce a website to learn that. I’m still waiting for your answer thank you

    • حسین شفیعیان گفت:

      i want publish java training the future
      but java not nice language for beginning programming
      if you want be professional programming must start with C++ language
      but every way video and website not nice training for programming learn
      you can read book for full learn select

  • Esmat گفت:

    Thank you
    Do you know the learning from the books is very boring for me and also the books are not available for me anyway and the learning from the books is very old way for this generation. The way is learning from web, YouTube and especially from you. The creating application and software is very inserting and important for me and for some members who wants to be programmer in future. If you like to teach us please continue the Java not just for me, even for your members

  • mr_shahin گفت:

    ممنون مهندس جان ..
    خیلی ساده و روان … استفاده کردیم.
    منتظر ادامه اش هستیم
    خدا قوت

  • rezalhm گفت:

    سلام
    داداش کارت درسته.
    احیانا بچه خزانه که نیستی؟

  • منصور گفت:

    سلام . امروز کارشما را دیدم خیلی خوب است موفق باشید

  • mohsen گفت:

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

  • احمد گفت:

    سلام
    علت استفاده از کد زیر چیست ؟

    return $this -> a;

    ممنون

  • بدبخت گفت:

    سلام آقای برنامه نویس. من ویدیو اول بوت استرپ را دیدم دیگه ویدیو قسمت های دیگه را نمی توانم ببینم سه وچهارر بار هم دانلود کردم نشد خواهش می کنم کمک کنید.

    • حسین شفیعیان گفت:

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

  • فهیم گفت:

    با سلام و تشکر از آموزشای خوبتون
    فایل رو بعد از اینکه دانلود میکنم موقع اکسترکت ارور میده اگه بررسی کنید ممنون میشم.هم گام اول و هم گام دوم شی گرایی هردو همین مشکل رو داره

    • حسین شفیعیان گفت:

      سلام
      شما با برنامه 7zip باید این فایل رو اکسترکت کنید
      با برنامه 7zip تست کنید اگر مشکل برقرار بود اطلاعات بدید مجدد آپ میکنم

  • علیرضا گفت:

    سلام استاد …
    من یه مدتی هست که با سایت شما آشنا شدم و دارم از ویدیو های شما استفاده میکنم … من همشهری شمام و برنامه نویس … با این تفاوت که من دات نت کار میکنم و البته در ابتدای راه PHP … سایتت و نوع کار و بیانت خیلی پسندیدم واقعا دست مریزاد … شما یک متغییری به نام this$ تعریف کردی! این متغییر که کلمه کلیدی نیست؟! یعنی برای یک متغییر دیگه من میتونم برای get و set کردنش از this2 استفاده کنم؟! … در ضمن در دات نت و شی گرایش get و set میکنیم که کاری به متغییر اصلی نداشته باشیم ولی اینجا در php خلاف اینه و کلا هر رفتاری میشه داشت که برام خیلی جالب بود.

    • حسین شفیعیان گفت:

      سلام
      this یک کلمه کلیدی است و از قبل رزو شده اما this2 مشکلی نداره
      پایدار باشید

  • مریم گفت:

    سلام
    من میخوام یک فرم سه مرحله ایی ارسال ویدیو بصورت شی گرایی بنویسم .میخواستم بدونم که:
    1- session فرم ها بصورت شی گرایی چطوری به فایل php ارسال میشه؟؟
    2-ارسال مقادیر فرم بصورت شی گرایی چطوری به فایل php ارسال میشه و همچنین عمل insert & select بصورت شی گرایی انجام میگیره؟؟اگه پاسخ بدید ممنون میشم.

  • مریم گفت:

    آقای شفیعیان من در انجمن یک سوال در مورد شی گرایی پرسیدم اگه جواب بدید ممنوم میشم.

  • مریم گفت:

    آقای شفیعیان شما گفتید که سوالات خودتون رو در انجمن بپرسید.من هم یه اشکال در مورد شی گرایی داشتم و اونو پرسیدم اما جواب نمیدید.

  • رضا گفت:

    میشه از تفاوت بین php و asp.net m,vc بگی؟

  • payam.te گفت:

    با سلام و احترام.
    لینکهای زیر مشکل دارند لطفا اصلاح نمایید
    و در صورت امکان به بنده خبر دهید
    بهه دلیل شاغل بودن بنده دیر به دیر به سایت خوب شما سر می زنم اگر برای شما مقدور می باشد لینک های دانلود آموزش مقدماتی تا پیشرفته پی اچ پی رو برای من ارسال نمایید
    با سپاس فراوان از شما

    لینک های خراب
    —————————————————————-
    http://mrprogrammer.net/category/programming/php/php-learn/page/2/

    http://mrprogrammer.net/category/programming/php/php-learn/page/3/

    http://mrprogrammer.net/category/programming/php/php-learn/page/4/

    http://mrprogrammer.net/category/programming/php/php-learn/page/5/

    http://mrprogrammer.net/category/programming/php/php-learn/page/6/

    ————————————————————————————

  • payam.te گفت:

    ایمیل من
    payam.te@gmail.com

  • shahhin گفت:

    با سلام و خسته نباشید
    ممنون از آموزش های شما
    آموزش های مقدماتی پی اچ پی دیگه نمیزارید؟

  • رضا واحدی گفت:

    با سلام
    بدلیل سبک خاص آموزش، درعین بیان تخصصی مطالب، از روش انتقال مفاهیم خصوصاً به افرادی که تازه برنامه نویسی را شروع کرده اند استفاده کرده اید . بنده غالب آموزش های موجود را بازبینی ومطالعه کرده ام وبه روش ونوع بیان وانتقال مطالب جنابعالی، نمره خیلی خوب می دهم فلذا ضمن تبریک به جنابعالی ، آرزوی موفقیت وسلامتی دارم.
    لطف عالی مستدام!

  • sahar گفت:

    با سلام
    تشکر بابت آموزشهای خیلی خیلی خوبتون
    لینک دوره مقدماتی php مشکل داره 🙁
    موفق باشید

  • masoud گفت:

    با سلام خدمت استاد عزیز شیفیان من یه 10 ماهی میشه که این سایتو میشناسم و همیشه سر میزنم دو ماه نتم قطع بود حالا ک اومدم دیدم ک دوره مقدماتی phpحذف شده میشه دوره مقدماتی رو بزارید ممنون با سپاس ضمن عرض تبریک سال نو خدمت دوستان عزیز.

  • یگانه گفت:

    با سلام و خسته نباشید … پس منتظر دوره ی مقدماتی php میمونیم 🙂 😉 … فوق العاده این .. خدا قوت ..

  • علی گفت:

    سلام.من میخام با ایکلیپس یه کتاب بسازم.اما چیزی از برنامه نویسی نمیدونم و فقط با کتابسازها کتاب میخامایکلیپس بدونم باید از کجا شروع کنم؟ایا نوشتن کتاب با ایکلیپس کار سختیه؟

  • یاشار گفت:

    سلام … من تو همین مطلب برای پیشنیاز “php” مقدماتی رو گفته بودید ک لازمه ولی لینکش خالی بود
    آیا آموزشش رو از سایت حذف کردید یا قراره ک آپلود کنید ؟

  • IMAN313 گفت:

    سلام شدیدا خواهش میکنم خواهش میکنم خواهش میکنم دوره php رو حتما بزارید قبلا بودش ولی الان هیچی نیست خواهش میکنم رسیدگی کنین و دوره php رو بزارید دوره های عالیتون رو تمام کنید

  • agha_mahdi گفت:

    با سلام
    اقای برنامه نویس فیلم های php که قبلا در سایت بود حذف شدند
    من خیلی به اون ها الان نیاز دارم
    اگه امکان هست لطفا ان ها را بزارید

  • افسانه شرفی گفت:

    سلام .
    آقای مهندس
    فیلم یک و دو خرابه. دو بار دانلود کردم
    مشکل داره

  • افسانه گفت:

    نه درسته با 7zip باز کردم.

    آموزش عاتون عالیه.
    ممنون

  • مهران گفت:

    با سلام میشه زحمت بکشید دوره مقدماتی PHP رو لینکش رو بزارید در بالای صفحه لینکش به جای دیگه ای میره. با سپاس

  • jalal گفت:

    سلام حسین جان، واقعا از زحمتایی که میکشی ممنونم. هم سایتت خیلی عالیه هم آموزشهات کامل و بدون نقصه، حرف نداره. فقط حسین میشه بی زحمت دوره مقدماتی php رو هم بذاری؟ ممنون میشم

  • محمد گفت:

    سلام
    خسته نباشید
    بنده چند سال پیش از سایت شما استفاده میکردم
    آموزش های php کامل دانلود کرده بودم ولی الان بنا به دلایلی حذف شده اند کاملا
    خواستم باز اقدام به دانلود کنم ولی 3تا بیشتر ندارید از آموزش های قبلی لطفا اگر دارید منتشر کنید.
    ممنون

    • حسین شفیعیان گفت:

      سلام
      این دوره مجددا ضبط و آموزش هاش منتشر خواهد شد و دوره قبلی در دسترس نیست

  • محمد کولیوند گفت:

    مهندس سلام و خدا قوت
    آموزشهای مقدماتی php رو من داشتم قبلا ، بیست و هفت جلسه بود . جلسه آخر مربوط می شد به کار با فایل ها ، جلسات مقدماتی از این بیست و هفت جلسه بیشتره یا همون هاست ؟

  • abbaszadeh گفت:

    حسین جان کارت درسته اگه بتونی این دوره رو کامل کنی خیلی خیلی خوبه حتی اگه کلش رو واسه فروش بذاری خیلی خوب میشه بالاخره هم زحمت میکشی هم وقت میذاری ( میذاری با همین ذ هستش؟) 🙂 آقا موفق باشی ادامه بده چون کارت درسته

  • محمد گفت:

    تشکر زنده باشی

  • sf گفت:

    سلام
    ممنون به خاطر زحماتی که کشیده اید و اینکه انقدر راحت اطلاعاتتونو در اختیار دیگران قرار داده اید.
    راستش من تازه با آموزش های شما آشنا شدم و به شدت دنبال آموزش php هستم شما در اینجا دوره ی پیشرفته را قرار داده اید، اگه امکانش هست میخوام هرچه زودتر دوره ی مقدماتی آموزش هاتونو داشته باشم. ممنون میشم اگه نحوه ی دسترسی به این دوره هارو بهم بگید.
    با تشکر