جلسه یازدهم PHP: شی گرایی - تعریف کلاس - ساخت اشیا فراخوانی تابع عضو

جلسه یازدهم PHP: آموزش کامل زبان برنامه نویسی پی اچ پی مقدماتی تا پیشرفته

در این مقاله از کدپز با جلسه یازدهم PHP در خدمت شما هستیم.

در قسمت قبل در جلسه دهم PHP (آخرین جلسه از PHP مقدماتی، ) مبحث فرم ها در PHP را مطرح نمودیم. و تفاوت دو متد GET و POST را در فرم PHP‌ بررسی نمودیم. سپس مبحث اعتبارسنجی فرم در PHP را بیان کردیم.

اولین جلسه از PHP پیشرفته

در این جلسه:

از کدپز با آموزش شی گرایی در PHP در خدمت شما هستیم. ( OOP )

مقدمه :

ما  می توانیم جهان را ساخته شده از چیز های مختلفی
مانند خورشید، زمین، ماه و … تصور کنیم. به طور مثال یک اتومبیل را فرض کنید که
از چیز های مختلفی مانند چرخ، فرمان، دنده و غیره تشکیل شده است. به طور مشابه
مفاهیم برنامه نویسی شی گرایی وجود دارند، که همه چیز را به عنوان یک شیء فرض می
کند و یک نرم افزار را با استفاده از اشیاء مختلف اجرا می کند.

شکل زیر از جلسه یازدهم PHP را در نظر بگیرید که مفهومی کلی از شی گرایی
را بیان می کند.

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

اساسا کلاس‌ها را بدین منظور ایجاد
می‌کنند که از آن‌ها شی‌های متنوعی بسازند مثلا از کلاس خودرو شی‌های Audi و Volvo را می‌توان
داشت.

مفاهیم شی گرایی

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

شی (object): ما یک کلاس
را یک بار تعریف می کنیم و سپس بسیاری از اشیاء را که متعلق به آن هستند ایجاد می
کنیم. هر شی بیانگر یک «حالت» یا یک «نمونه» (Instance) از کلاس خود
است.

صفت(attribute): هر شی یکسری خصوصیات دارد که به آنها صفت گفته می شود که در واقع یک مقدار یا ارزش مشخصی برای آن به ازای هر شی می تواند وجود داشته باشد. وزن، قد، ارتفاع، طول، عرض و . . .

روش (method): هر شی یکسری
رفتار دارد که به آنها روش (متد) گفته می شود. متد در واقع پاسخ هایی است که آن شی
در مقابل تحریکات محیط از خود نشان می دهد.

کلاس (class): به مجموعه ای از اشيا
که دارای ویژگی و رفتار (متد) مشترک می باشند، کلاس گویند. کلاس ماشین، کلاس انسان،
کلاس دانشجو

متغیر عضو(member variable): متغیرهای تعریف شده
درون کلاس. این داده در خارج  از کلاس غیر
قابل مشاهده بوده و می تواند توسط توابع عضو در دسترس باشند. این متغیرها در زمانی
که شی ایجاد می شود صفت نامیده می شوند.

تابع عضو(member function): این ها توابع تعریف
شده درون یک کلاس هستند و برای دسترسی به داده های شی استفاده می شود.

شما در حال آموزش و یادگیری جلسه یازدهم PHP می باشید.

ارث بری(inheritance): کلاس فرزند می تواند
همه ی توابع و متغیر های کلاس پدر (و یا تعدادی از آن را) به ارث ببرد. به انجام
این عمل به اصطلاح ارث بری گفتته می شود.

کلاس پدر(parent class): کلاسی که توسط کلاس
دیگری به ارث برده می شود. همچنین به آن نیز کلاس پایه و یا سوپر کلاس گفته می
شود.

کلاس فرزند(child class): کلاسی که از کلاس
دیگری ارث بری می کند. همچنین به آن زیرکلاس هم گفته می شود.

چند ریختی(polymorphism): این مفهوم شی گرایی
برای جایی به کار می رود که یک تابع بتواند برای چند هدف مختلف استفاده شود. برای
مثال نام تابع همان خواهد بود اما ممکن است تعداد مختلفی از آرگومان ها را بگیرد و
بتواند وظایف متفاوتی را انجام دهد.

تعریف کلاس های PHP

فرم کلی تعریف یک کلاس جدید در پی اچ پی

به مثال زیر از جلسه یازدهم PHP توجه نمایید.

<?php
class phpClass {
    var $var1;
    var $var2 = "constant string";

    function myfunc ($arg1, $arg2) {
        [..]
      }
[..]
}
?>

حال به بررسی خطوط می پردازیم:‌

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

O بین براکت های باز و بسته هر تعداد از اعلان های متغیر و تعاریف تابع می آید.

O اعلان متغیر با یک کلمه کلیدی var شروع می شود که به دنبال آن نام متغیر می آید. در هنگام اعلان متغیر می توانیم آن را مقداردهی اولیه نیز کنیم.

O تعریف تابع شبیه به تعریف توابع php است با این تفاوت که اما محلی به کلاس هستند و برای تنظیم و دسترسی به داده های شی مورد استفاده قرار می گیرند.

مثال: در قطعه کد زیر از جلسه
یازدهم PHP ، یک کلاس از
نوع کتاب داریم.

<?php
class Books {
    /* Member variables */
    var $price;
    var $title;

    /* Member functions */
    function setPrice($par){
        $this->price = $par;
    }

    function getPrice(){
        echo $this->price ."<br/>";
    }

    function setTitle($par){
        $this->title = $par;
    }

    function getTitle(){
        echo $this->title ." <br/>";
    }
}
?>

متغیر this$ یک متغیر خاص است و اشاره به همان شی یعنی خودش دارد.

ساخت اشیا در PHP

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

$physics = new Books;
$maths = new Books;
$chemistry = new Books;

در اینجا ما سه شی ایجاد کردیم و این
اشیا مستقل از یکدیگر هستند و موجودیت مجزای خودشان را دارند. در ادامه ی جلسه
یازدهم PHP بررسی نحوه
ی چگونگی دسترسی به تابع عضو و پردازش متغیرهای عضو را خواهید دید.

فراخوانی تابع عضو

بعد از ایجاد اشیای خود، شما قادر
خواهید بود تا توابع عضو مرتبط به آن شی را فراخوانی کنید. یک تابع عضو می تواند
متغیر عضو تابع مرتبط را پردازش کند.

مثال زیر نشان می دهد که چگونه
می توان با فراخوانی توابع عضو، قیمت و عنوان سه کتاب را مشخص کنیم.

$physics->setTitle( "Physics for High School" );
$chemistry->setTitle( "Advanced Chemistry" );
$maths->setTitle( "Algebra" );

$physics->setPrice( 10 );
$chemistry->setPrice( 15 );
$maths->setPrice( 7 );

حال می توانیم توابع عضو دیگری را
فراخوانی کنیم تا مقادیر مشخص شده توسط مثال بالا را به دست آوریم.

$physics->getTitle();
$chemistry->getTitle();
$maths->getTitle();
$physics->getPrice();
$chemistry->getPrice();
$maths->getPrice();

به خروجی آن در جلسه یازدهم PHP توجه نمایید.

Physics for High School
Advanced Chemistry
Algebra
۱۰
۱۵
۷

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

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




سایر مقالات :

جلسه معرفیرفتن به مطلب
جلسه اول Phpرفتن به مطلب
جلسه دوم Phpرفتن به مطلب
جلسه سوم Phpرفتن به مطلب
جلسه چهارم PHPرفتن به مطلب
جلسه پنجم PHPرفتن به مطلب
جلسه ششم PHPرفتن به مطلب
جلسه هفتم PHPرفتن به مطلب
جلسه هشتم PHPرفتن به مطلب
جلسه نهم PHPرفتن به مطلب
جلسه دهم PHP - یادآوری فرم در html - فرم ها در PHP‌ - آشنایی با متد های GET_$ و POST_$رفتن به مطلب
جلسه یازدهم PHP: شی گرایی - تعریف کلاس - ساخت اشیا فراخوانی تابع عضورفتن به مطلب
جلسه پانزدهم PHP: اتصال PHP به MySQL - (PDO یا MySQL) - بستن اتصالرفتن به مطلب
جلسه هفدهم PHP : وارد کردن اطلاعات در MySQL با دو روش mysqli و PDO - به صورت رویه ای و شی گراییرفتن به مطلب
جلسه هجدهم PHP- دریافت آخرین شناسه در پایگاه داده MySQL - دستورات آماده PHP در MySQL رفتن به مطلب
جلسه نوزدهم PHP: رفتن به مطلب
جلسه بیست یکم PHP : XML - DOM - SimpleXMLرفتن به مطلب
جلسه بیست دوم PHP : رفتن به مطلب
جلسه بیست سوم PHP : پایگاه داده و Ajaxرفتن به مطلب
جلسه بیست چهارم PHP : تمارین PHP رفتن به مطلب
جلسه بیست پنجم PHP رفتن به مطلب