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

مفهوم Class و Object در برنامه نویسی شی گرا در PHP


با استفاده از فیلم های آموزشی تولید شده توسط کلیک سایت، به راحتی می توانید مفهوم Class و Object در برنامه نویسی شی گرا در PHP را آموزش ببینید. در ادامه دعوت می شود که فیلم دمو (بخش اول آموزش) را در زیر مشاهده نمایید.


در دنیای واقعی، هر جسمی دارای خصوصیات و رفتارهای مختص خود می باشد. ما می توانیم اشیاء مشابه با ویژگی ها و رفتارهای مشابه را در یک کلاس (class) دسته بندی کنیم. بنابراین ما می توانیم بگوییم که یک کلاس یک طرح (blueprint) از اشیا (objects) است.

به عنوان مثال، کلاس (class) را می توان یک طرح یا یک نقشه برای یک خانه درنظر گرفت.  یک طرح یا نقشه ویژگی های خانه را بر روی کاغذ تعریف می کند. ما می توانیم از روی یک نقشه یا طرح به هر تعداد که بخواهیم خانه بسازیم. پس می توانیم بگوئیم یک شی نمونه ای از یک کلاس است، یا یک خانه نمونه ای از یک نقشه (blueprint) است.

تعریف کلاس ها (class) و اشیاء (object)

قبل از ایجاد هر شی جدیدی، شما نیاز به یک کلاس یا طرح شیء دارید. تعریف کلاس در PHP بسیار ساده است. برای تعریف یک کلاس جدید در PHP، از کلمه کلیدی class استفاده می کنیم :

<?php

class BankAccount{



}

همانطور که دیدید، ما یک کلاس خالی جدید به نام BankAccount تعریف کردیم. از کلاس BankAccount، می توانیم با استفاده از کلید واژه new یک شیء ایجاد کنیم. کد زیر بیانگر این مطلب می باشد:

<?php

class BankAccount{



}



// create a new bank account object

$account = new BankAccount();



var_dump($account);

خروجی :

C:\wamp64\www\clicksite.org\index.php:9:

object(BankAccount)[1]

نکته :

توجه داشته باشید که ما از تابع var_dump()  برای مشاهده محتوای شی استفاده می کنیم.

 

متغیرها یا Properties

در شی گرایی (object-oriented)، به ویژگی های یک شیء properties می گویند. برای مثال، حساب بانکی دارای property یا ویژگی هایی مانند شماره حساب و موجودی حساب است.

بنابراین اجازه دهید این خواص را به کلاس BankAccount اضافه کنیم:

<?php

class BankAccount{

 private $accountNumber;

 private $totalBalance;

}

همانطور که می بینید ما از کلیدواژه private قبل از تعریف هر property استفاده نمودیم. که به آن visibility یا قابلیت دیده شدنِ property می گویند.

هر property می تواند یکی از این سه سطح دیده شدن (visibility levels) را داشته باشد. این سه سطح(level) عبارتند از :

  • private به معنای خصوصی
  • protected به معنای محافظت شده
  • public به معنای عمومی

private : متغیرها یا property هایی که در یک کلاس از نوع private تعریف می شوند، تنها می توانند توسط متدهای آن کلاس قابل دسترسی باشند. در مورد متدهای کلاس، کمی بعدتر صحبت خواهیم کرد.

protected : متغیرها یا property هایی که در یک کلاس از نوع protected تعریف می شوند، خواصی شبیه به property ها از نوع private دارند به جز اینکه propertyهای از نوع protected می توانند توسط زیرکلاس ها (subclasses) نیز قابل دسترسی باشند. شما در آموزش های بعدی، در مورد زیر کلاس ها و ارث بری (inheritance) خواهید آموخت.

public : متغیرها یا property هایی که در یک کلاس از نوع public تعریف می شوند، نه تنها می توانند از طریق متدهای داخل کلاس، قابل دسترسی باشند، بلکه می توانند از طریق کلاس های خارجی نیز قابل دسترسی باشند.

متغیرها یا property هایی که داخل کلاس BankAccount تعریف کردیم، فقط توسط متدهای داخل کلاس قابل دسترسی هستند.

method

رفتارهای (behavior) شی یا کلاس، متد (method) نامیده می شوند و درواقع همان توابع (Function) یک کلاس را تشکیل می دهند. شبیه به property ها در یک کلاس، متدها می توانند سه سطح دید (visibility levels) مختلفی داشته باشند: private، protected و public.

مثلا برای یک حساب بانکی یا همان کلاس BankAccount باید رفتارهای زیر را تعریف کنیم. ما می توانیم به حساب بانکی، پول واریز کنیم، یا پول برداشت کنیم و یا موجودی حساب را بگیریم. علاوه برا این ما نیاز داریم برای یک حساب "شماره حساب" تعریف کنیم و یا شماره حساب را دریافت کنیم. شماره حساب بانکی برای تمایز بین حساب های بانکی دیگر لازم و ضروری می باشد.  اینها همان توابع  یک کلاس را تشکیل می دهند.

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

بعضی از روش ها را به کلاس BankAccount اضافه می کنیم:

<?php

class BankAccount{

 /**

 * bank account number

 * @var string bank account number

 */

 private $accountNumber;

 /**

 * total balance

 * @var float total balance

 */

 private $totalBalance;



 /**

 * deposit money to the bank account

 * @param float $amount amount to deposit

 */

 public function deposit($amount){

 $this->totalBalance += $amount;

 }



 /**

 * withdraw money from the bank account

 * @param double $amount

 */

 public function withdraw($amount){

 if($amount > $this->totalBalance)

 die('Not enough money to withdraw');



 $this->totalBalance -= $amount;

 }



 /**

 * returns total balance

 * @return float total balance

 */

 public function getBalance(){

 return $this->totalBalance;

 }



 /**

 * return bacnk account number

 */

 public function getAccountNumber(){

 return $this->accountNumber;

 }



 /**

 * set bank account number

 * @param string $accountNumber

 */

 public function setAccountNumber($accountNumber){

 $this->accountNumber = $accountNumber;



 }

}

توجه داشته باشید که ما از یک متغیر خاص به نام $this برای دسترسی به یک property از یک شی استفاده می کنیم.

PHP با استفاده از متغیر $this به شی (object) جاری اشاره می کند.

برای دسترسی به یک property از عملگر فلش (->) به صورت زیر استفاده می کنیم:

object->property

بیایید متدهای کلاس BankAccount را با جزئیات بیشتری بررسی کنیم:

متد ()deposit موجودی حساب را افزایش می دهد.

متد ()withdraw  کل موجودی را چک می کند.اگر موجودی کل از مبلغی که قرار است کسر شود کمتر باشد، یک پیام خطا نمایش داده می شود و از تابع خارج می شویم. در غیر اینصورت از مبلغ کل مقدار خواسته شده کسر می گردد و موجودی کل، کاهش می یابد.

متد ()getBalance  کل موجودی حساب را باز می گرداند.

متد ()setAccountNumber  و ()getAccountNumber  متدهای setter / getter نامیده می شود.

فراخوانی متدها

برای فراخوانی یک متد از یک شی، از عملگر (->) و به دنبالش نام متد و پرانتز استفاده می کنیم. اجازه دهید متدهای کلاس bank account را فراخوانی کنیم :

// create a new bank account object

$account = new BankAccount();



$account->setAccountNumber('1243845355');

echo sprintf("Bank account # %s<br/>",$account->getAccountNumber());



echo sprintf("Deposit $2000 to the bank account.<br/>");

$account->deposit(2000);

echo sprintf("Total balance %0.2f<br/>", $account->getBalance());



echo sprintf("Withdraw $100 from the bank account.<br/>");

$account->withdraw(100);

echo sprintf("Total balance %0.2f<br/>", $account->getBalance());



echo sprintf("Withdraw $2000 from the bank account.<br/>");

$account->withdraw(2000);

در این آموزش، شما پایه برنامه نویسی شی گرا (object-oriented programming) یا OOP در php را یاد گرفتید.

شما همچنین با دو بلوکِ اصلیِ ساختمانِ برنامه نویسی شی گرا یعنی، اشیاء و کلاس ها آشنا شدید.

فصلِ: 1 , تعداد قسمت ها: 7 , سطح: صفر تا صد
موضوعات: آموزش PHP

این فصل در یک نگاه:

در این مجموعه به ساخت سیستم نظردهی در php می پردازیم.…

بنا به درخواست یکی از کاربران گرامی سایت (امیر تجاره) طی چند مجموعه آموزشی قصد داریم نحوه ساخت و پیاده سازی سیستم ثبت نظرات و هم چنین نحوه ثبت پاسخ به هر نظر را مورد بررسی قرار دهیم. این مج…
فصلِ: 1 , تعداد قسمت ها: 2 , سطح: صفر تا صد
موضوعات: آموزش PHP

این فصل در یک نگاه:

در این مجموعه به آموزش ارسال ایمیل در phpmailer می پردازیم.یکی از مزایای phpmailer و ارسال ایمیل در php با استفاده از ph…

بی شک ارسال ایمیل php از مهم ترین توانایی های یک برنامه نویس php  به شمار می رود. این ایمیل می تواند برای تبلیغات و یا اطلاع رسانی و موارد بسیار زیادی به کار رود. در php روش های مختلفی برای…
فصلِ: 2 , تعداد قسمت ها: 232 , سطح: صفر تا صد

این فصل در یک نگاه:

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

آیا اصلا من میتونم یک طراح سایت و برنامه نویس بشم؟ آیا یادگیری طراحی سایت سخته ؟ آیا باید حتما زبان انگلیسی رو مسلط باشم؟ آیا حتما نیاز هست که رشته کامپیوتر باشم ؟ آیا یادگیری برنامه نویسی …
فصلِ: 2 , تعداد قسمت ها: 119 , سطح: صفر تا صد

این فصل در یک نگاه:

در این فصل با زبان سمت سرور PHP آشنا می شویم و توابع و دستورات مهم این زبان برنامه نویسی را بررسی خواهیم کرد…

  بنام خدا   با سلام خدمت تمامی دوستان عزیز کلیک سایت. بسیار خرسندیم که با یک دوره پروژه محور دیگر در خدمت شما دوستان محترم هستیم که انشالله قرار است قدم بگذاریم به دنیای بسیار جذاب و مح…
فصلِ: 2 , تعداد قسمت ها: 100 , سطح: صفر تا صد

این فصل در یک نگاه:

در این فصل می آییم یک سایت بلاگ با cms اختصاصی را پیاده سازی می کنیم که هم مروری باشه برای زبان برنامه نویسی PHP و هم شم…

توجه: این دوره دائما توسط مهندس روشنایی (مدرس دوره) بروز گردیده و مطابق با آخرین استانداردهای برنامه نویسی آپدیت می شود. توجه فرمائید دریافت آپدیت ها برای خریداران قبلی رایگان می باشد و نیاز…
فصلِ: 3 , تعداد قسمت ها: 169 , سطح: مقدماتی
موضوعات: آموزش PHP آموزش PHP

این فصل در یک نگاه:

آشنایی با دستورات html ، css و js و انجام مینی پروژه سامانه نمرات دانش آموزان مدرسه آلفا…

توضیحات کلی مجموعه: در این دوره به مفاهیم و توابع php و mysql پرداخته شده و این دوره منتج به تولید یک پروژه بزرگ نخواهد شد در پایان این دوره یک مینی پروژه مثل سامانه کارنامه دانش آموزان مدر…
فصلِ: 1 , تعداد قسمت ها: 19 , سطح: متوسط

این فصل در یک نگاه:

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

راه اندازی فروشگاه اینترنتی در وردپرس با افزونه ووکامرس آموزش حرفه ای فروشگاه ساز وردپرس با افزونه ووکامرس           آخرین باز تولید آموزش ویدیویی ووکامرس در  1396/11/15  صورت گرفت.       …
فصلِ: 14 , تعداد قسمت ها: 188 , سطح: صفر تا صد

این فصل در یک نگاه:

سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…
فصلِ: 28 , تعداد قسمت ها: 253 , سطح: صفر تا صد

این فصل در یک نگاه:

آشنایی با امکانات جدید لاراول ۷…

برخی از سرفصل های این پکیج آموزشی :   لاراول چیست و چرا ما لاراول استفاده میکنیم کامپوزر کارش چیه و نصب اون نصب لاراول آموزش نصب لاراول از طریق اینستالر آموزش نصب لاراول با استفاده ا…
فصلِ: 1 , تعداد قسمت ها: 6 , سطح: صفر تا صد

این فصل در یک نگاه:

داشتن یک اپلیکیشن موبایل برای وب سایت به برند سازی و اعتبار وب سایت بهبود و تسریع می بخشد لذا توصیه می شود با وجود همگان…

  دوره آموزش طراحی و ساخت اپلیکیشن موبایل برای وب سایت   قطعا شما هم دوست دارید برای وب سایت خود اپلیکیشن بسازید و پس از پیگیری متوجه شدید که هزینه ای بیش از 5.000.000 تومان باید پرداخت بکن…
فصلِ: 9 , تعداد قسمت ها: 215 , سطح: صفر تا صد

این فصل در یک نگاه:

در اصل فصل در مورد performance صحبت خواهیم کرد :-React Performance-Lazy-Error Boundaries و سایت را بر روی هاست واقعی قرا…

با سلام خدمت کلیک سایتی های عزیز، به دوره ی صفر تا صد طراحی سایت با react js خوش آمدید. نکته:این دوره کاملا پروژه محور میباشد نکته:این دوره هیچ پیش نیازی ندارد ReactJS  چیست؟ ReactJS اس…
فصلِ: 11 , تعداد قسمت ها: 162 , سطح: صفر تا صد

این فصل در یک نگاه:

در این فصل(فصل یازدهم مجموعه)،به طراحی CMS (سیستم مدیریت محتوا)اختصاصی فروشگاه می پردازیم.هدف از طراحی این بخش،آنست که م…

در این مجموعه آموزشی قصد داریم از صفر تا صد طراحی یک فروشگاه اینترنتی رو به صورت کامل آموزش بدهیم.این فروشگاه شامل تمامی بخش های مورد نیاز یک فروشگاه اینترنتی است. هدف از این مجموعه،آموزش…
فصلِ: 1 , تعداد قسمت ها: 4 , سطح: متوسط

این فصل در یک نگاه:

در بازاریابی نوین روش جدیدی ابداع شده که این روزا ها بسیار کسب و کارهای اینترنتی را با هزینه بسیار بسیار پایین و بازدهی …

توضیحات کلی مجموعه: (توجه: حتما با کلیک روی عکس این دوره آموزشی در بالا دمو را مشاهده کنید یا قسمت اول را رایگان دانلود کنید) در بازاریابی اینترنتی هر روز شاهد روش های جدید و استراتژی های ن…
فصلِ: 4 , تعداد قسمت ها: 240 , سطح: صفر تا صد

این فصل در یک نگاه:

طراحی پنل مدیریت(دسته بندی)- دسته بندی یا category - نمایش دسته های فرعی در view با ورود به یکی از دسته های اصلی و آشن…

توضیحات کلی مجموعه: این مجموعه توسط فریمورک محبوب و دوست داشتنی bootstrap  و به صورت تضمینی  و صفر تا صد جهت یادگیری کارآموزان عزیز ارائه گردیده و دوستانی که این دوره را به طور کامل و دقیق…
فصلِ: 8 , تعداد قسمت ها: 77 , سطح: صفر تا صد

این فصل در یک نگاه:

  پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…
فصلِ: 5 , تعداد قسمت ها: 25 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل پنجم…

توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…
فصلِ: 5 , تعداد قسمت ها: 201 , سطح: صفر تا صد

این فصل در یک نگاه:

ایجاد پروژه آژانس مسافرتی.....…

فصل اول: آشنایی با مبانی برنامه نویسی اندروید   آشنایی با معماری برنامه های اندرویدی ساخت شبیه ساز جهت تست پروژه اندروید آشنایی با دستور Toast و حلقه for در برنامه های اندروی…
فصلِ: 1 , تعداد قسمت ها: 2 , سطح: متوسط

این فصل در یک نگاه:

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

  وبینار(سمینار آنلاین) آموزش تکنیک های ایمیل مارکتینگ   اگر تا انتها این متن را مطالعه کنید نظر شما در مورد ایمیل مارکتینگ 180 درجه عوض می شود!! بر هیچکس پوشیده نیست که از سال 1972 که ای…
فصلِ: 4 , تعداد قسمت ها: 368 , سطح: صفر تا صد

این فصل در یک نگاه:

مباحث تکمیلی فریم ورک لاراول…

فصل اول :آموزش مقدماتی فریم ورک لاراول معرفی فریم ورک لاراول و پیشنیازهای انجام کار انجام کانفیگ های اولیه برای نصب و راه اندازی فریم ورک معرفی روش های نصب پروژه لاراولی از طریق سایت گی…
فصلِ: 1 , تعداد قسمت ها: 155 , سطح: صفر تا صد

این فصل در یک نگاه:

مباحث مقدماتی فریم ورک react.js…

توضیحات کلی مجموعه: فصل اول : آشنایی با مباحث مقدماتی فریم ورک react.js نصب و راه اندازی node.js  و کلیه پیش نیازهای لازم نصب فریم ورک react روی لوکال و انجام تست های لازم آغاز آشنایی …

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید