دسته بندی : زبان برنامه نویسی PHP چهارچوب MVC

شی گرایی PHP مبتدی

شی گرایی چیست ؟ 

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


مثال 1 ) شما یک آپارتمان رو در نظر بگیرید و سعی دارید یه مجتمع مسکونی بسازید اگه شما یک برنامه نویس بودید راحت ترین کار برای اینکه این مجتمع رو پیاده سازی کنید چه بوده ؟! هر آپارتمان چند تا مشخصات اصلی داره مثل ( طبقه چندمه , واحد چندمه , چندتا اتاق خواب داره , آپارتمان چند متری و .... ) خوب اگه شما بخواین برای تک تک خونه ها مجتمع تمام این چیز ها رو کد نویسی کنید یه کار سر دردیه و باعث شلوغ شدن کد های شما میشه ! و هیچ ادم عاقلی این کار رو نمیکنه 

پس چه کاری بکنیم ! شما باید فضای آپارتمان رو به عنوان یه کلاس در نظر بگیرید ! هر کلاس مجموعه ای از خصوصیت ها رو داره که بهش PROPERTY یا ویژگی ها میگن ! وقتی که من از فضای آپارتمان یه نمونه میسازم بهش initial کردن میگن و به اون نمونه معمولا آبجکت میگن . 

تو کد زیر دقت کنید چه اتفاقی میوفته : 

class Apartment
{
    public $floor ;
    public $unit ;
    public $countRoom ;
}

خوب در اینجا مشخصات یک کلاس رو میبنیم floor (طبقه) , unit (واحد) و countRoom (تعداد اتاق) از مشخصات کلاس آپارتمان هستش وقتی ما میگیم یه نمونه بساز از این کلاس مثلا آپارتمان طبقه اول , واحد دوم , 3 اتاق داره خوب نمونه اش میشه این : 

class Apartment
{
    public $floor ;
    public $unit ;
    public $countRoom ;
}

$item = new Apartment();
$item->floor = 1 ;
$item->unit = 2 ;
$item->countRoom = 3 ;

به همین راحتی میشه بقیه آپارتمان ها رو هم مثل کد بالا ساخت ولی وقتی من از این آبجکت یعنی item$ یک بار var_dump  بگیرم چی میتونه برگردونه ؟! 

object(Apartment)#1 (3) { 
    ["floor"]=> int(1) 
    ["unit"]=> int(2) 
    ["countRoom"]=> int(3) 
}

مفهموم خروجی var_dump بالا اینه که نوع متغییر آیتم شی از کلاس apratment هستش که سه تا خصوصیت داره یکیش اینه که floor = 1 و unit = 2 و countRoom = 3 


مثال 2 )  شما یه حیوان رو در نظر بگیرید معمولا حیوان رو بر اساس چه چیزی میشناسن ؟ مثل نام حیوان , سن حیوان , تعداد پا  و ... 

پس درک کردید ما دنبال چی هستیم ؟! ما دنبال ویژگی های مشترک بین شی های خودمون هستیم این ویژگی ها باعث میشن تا کلاس ما خیلی به واقعیت نزدیک بشود 

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

class Animal
{
    public $name ;
    public $age ;
    public $legs ;
}

$Tornado = new Animal ; 
$Tornado->name = "horse" ;
$Tornado->age = 21 ;
$Tornado->legs = 4 ;

خوب من از کلاس Animal یه شی ساختم به اسم Tornado نام این حیوان اسب هستش و 21 سال سن داره و 4 تا پا (اسب زورو) , وقتی که من شی رو داشته باشم میتونم به مشخصات شی هم دسترسی داشته باشم داخل مثال اول رو ببینید ما در قسمت اخر یه var_dump از شی گرفتیم به ما مشخصات آپارتمان رو داد :

var_dump($Tornado->name);
//output horse 

0| از0رای

مطالب مشابه


0 دیدگاهافزودن