کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش استفاده از کلیدواژه ی $this در PHP

آموزش استفاده از کلیدواژه ی $this

در مبحث قبلی با مفهوم سازمان دهی کدهای مرتبط که با همکاری وظیفه ی خاصی را به انجام می رسانند، داخل واحد کلاس آشنا شدیم. همچنین یک کلاس به نام Car ایجاد کردیم که کدهای مربوط به ماشین از جمله ویژگی های ظاهری آن و رفتاری که از خود نشان می دهد را دربر می گرفت.

class Car {
  public $comp;
  public $color = 'beige';
  public $hasSunRoof = true;
  public function hello() 
  {
    return "beep";
  }
}

همچنین دو آبجکت از روی کلاس ایجاد کرده و به توابع و property های موجود در آن با دستور مناسب دسترسی پیدا کردیم.

$bmw = new Car ();
$mercedes = new Car ();

آنچه خواهید آموخت:

  • دلیل استفاده از کلیدواژه ی $this را درک خواهید کرد.
  • با چگونگی استفاده از کلیدواژه ی $this جهت دسترسی به property ها و متدهای کلاس از داخل آن کاملا آشنا خواهید شد.

کلیدواژه ی $this در برنامه نویسی شی گرا با php

کلیدواژه ی $this به توسعه دهنده این امکان را می دهد تا به متدها و property های کلاس جاری از داخل خود کلاس (class scope) دسترسی داشته باشد.

کلیدواژه ی$this برای این منظور تعبیه شده که برنامه نویس بتواند از property ها و متدهای کلاس جاری استفاده کند. نحوه ی دسترسی به توابع و property های داخل خود کلاس به شرح زیر می باشد:

نکته:

تنها نکته ی قابل توجه این است که کلیدواژه ی مزبور با علامت دلار آغاز شده، در حالی که اسم property ها و متدهایی که با این کلیدواژه مورد دسترسی قرار می گیرند، دیگر این علامت را ندارند.

$this -> propertyName;
$this -> methodName();

کلمه ی کلیدی $this در واقع به متدها و property های کلاس فعلی اشاره دارد و این قابلیت را در اختیار برنامه نویس قرار می دهد که داخل کلاس مورد نظر، به اعضای آن دسترسی داشته باشد.

حال از کلیدواژه ی نام برده برای دسترسی به اعضای کلاس Car استفاده می کنیم. با استفاده از این امکان می توان به property های کلاس جاری داخل تابع hello() از همین کلاس دسترسی داشت.

به منظور دسترسی به متغیر $comp از کلاس جاری، می توان از دستور زیر استفاده کرد:

$this -> comp

به منظور دسترسی به متغیر $color از کلاس مورد نظر از دستور زیر استفاده می کنیم.

$this -> color

کد مربوطه به صورت زیر خواهد بود:

class Car {
    // The properties
    public $comp;
    public $color = 'beige';
    public $hasSunRoof = true;
    // The method can now approach the class properties
    // with the $this keyword
    public function hello()
    {
      return "Beep I am a " . $this -> comp . ", and I am " .
        $this -> color;
    }
}

حال دو آبجکت از روی کلاس جاری می سازیم:

$bmw = new Car();
$mercedes = new Car ();

با دستور زیر مقادیر property های دو آبجکت را تنظیم می کنیم:

$bmw -> comp = "BMW";
$bmw -> color = "blue";
 
$mercedes -> comp = "Mercedes Benz";
$mercedes -> color = "green";

اکنون متد hello() را برای اولین آبجکت car فراخوانی می کنیم:

echo $bmw -> hello();

خروجی:

                            
Beep I am a BMW, and I am blue.

حال آن را برای آبجکت دوم فراخوانی می کنیم:

echo $mercedes -> hello();

خروجی:

Beep I am a Mercedes Benz, and I am green.

در زیر تمام کدی که در مبحث حاضر نوشتیم را مشاهده می کنیم:

class Car {
    // The properties
    public $comp;
    public $color = 'beige';
    public $hasSunRoof = true;
    // The method that says hello
    public function hello()
    {
      return "Beep I am a " . $this -> comp . 
         ", and I am " . $this -> color;
    }
}
// We can now create an object from the class.
$bmw = new Car();
$mercedes = new Car();
// Set the values of the class properties.
$bmw -> color = 'blue';
$bmw -> comp = "BMW";
$mercedes -> comp = "Mercedes Benz";
// Call the hello method for the $bmw object.
echo $bmw -> hello();
1396/03/11 8259 3378
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...