تعریف متغیر برای یک کلاس (class)، در PHP
همان طور که قبلا گفتیم، یک کلاس می تواند دارای تعدادی تابع (function) باشد، که آنها را روش های (methods) کلاس می نامند. علاوه بر تعریف توابع برای کلاس ها، می توانیم برای آنها، تعدادی متغیر (variable) یا ثابت (constant) نیز تعریف کنیم. به مجموع متغیرها و ثابت های تعریف شده برای کلاس، خواص (properties) کلاس گفته می شود. تفاوت متغیرها با ثابت ها در این است که مقدار تعریف شده برای ثابت (constant)، غیر قابل تغییر است، اما مقدار تعریف شده برای متغیر (variable) را می توانیم تغییر بدهیم.
اکنون می خواهیم نحوه تعریف یک متغیر برای یک کلاس را شرح بدهیم. به مثال زیر توجه کنید :
همان طور که مشاهده می کنید، یک کلاس با نام Welcome تعریف کرده ایم که دارای یک متغیر و یک تابع است. متغیر دارای نام var و تابع دارای نام say_hello می باشد. شاید کلمه public کمی شما را گیج کرده باشد، زیرا ما در حالت برنامه نویسی عادی PHP ، هنگام تعریف متغیرها، چنین کلمه ای قبل از نام متغیرها نمی نوشتیم. باید بگویم که هر خاصیت (یعنی متغیر یا ثابت) و یا تابعی (روشی) که در یک کلاس تعریف می کنیم، از نظر دیده شدن (Visibility)، باید جزء یکی از سه دسته public یا protected یا private باشد. بهتر است تفاوت این سه دسته را در یک مبحث دیگر، با جزئیات، شرح بدهیم. شما فعلا از دسته public برای تعریف متغیرها استفاده کنید (زیرا متغیرهایی که جزء این دسته باشند، در هر جایی، قابل دسترسی هستند و می توانید از مقدار آنها استفاده کنید).
ارجاع به متغیر تعریف شده در یک کلاس :
شیوه ارجاع به متغیر تعریف شده در یک کلاس، در مثال زیر شرح داده شده است :
ابتدا از کلاس مورد نظر، یک شئ (object) با نام object_name ساخته ایم. سپس توسط کد زیر، مقدار متغیر با نام var که درون شیء وجود دارد (زیرا شیء دارای تمام ویژگی های کلاسی است که از آن ساخته شده) را در متغیر با نام new_var ذخیره کرده ایم :
در انتها، مقدار ذخیره شده در متغیر new_var را با دستور echo در خروجی چاپ کرده ایم.
نتیجه :
ارجاع به متغیر تعریف شده در کلاس، از درون یک تابع از کلاس :
برای آشنایی با نحوه ارجاع به متغیر تعریف شده در کلاس، از درون یک تابع از کلاس، به مثال زیر توجه کنید :
همان طور که مشاهده می کنید، درون تابع say_hello از کلاس، به متغیر var ارجاع داده ایم، اما نکته مهم این است که شیوه ارجاع، به صورت زیر می باشد :
فعلا با مفهوم مربوط به $this کاری نداریم، تنها در همین حد بدانید که یک شبه متغیر (pseudo-variable) است.
بعد از تعریف کلاس، یک شیء با نام object_name از آن کلاس ساخته ایم و سپس روش say_hello از شیء ساخته شده را اجرا کرده ایم.