متغیر نامی است که به یک فضای آدرس حافظه انتساب داده می شود که در این فضای آدرس حافظه مقداری نگهداری خواهد شد. برای تعریف متغیرها باید ابتدای نام متغیر کاراکتر $ قرار بگیرد. نام متغیرها همانند دیگر زبان ها نباید با عدد شروع شود ولی می توان در ابتدای نام متغیر، کاراکتر زیر خط (Under Line) را قرار دهیم. توجه کنید نام متغیرها، آرایه ها یا شی ها (نمونه های) یک کلاس همگی باید با کاراکتر $ شروع شوند. از میان مثال های زیر همگی به جز اولی معتبر هستند زیرا نام متغیر اول با عدد شروع شده است.

تفاوت تعریف متغیر در پی اچ پی با سی پلاس پلاس

پی اچ پی زبانی بسیار شبیه به زبان سی پلاس پلاس است. در پی اچ پی نیازی نیست تا در تعریف متغیرها نوع متغیر به صورت آشکارا اعلان نوع شود، زیرا پی اچ پی زبانی است تفسیری ولی زبان هایی مانند سی، سی پلاس پلاس، سی شارپ و جاوا، از زبان های کامپایلی هستند و در زبان های کامپایلی پیش از برگردان برنامه (ترجمه یا کامپایل برنامه)، می بایست به آشکارا نوع متغیر به طور نمونه int یا string اعلان شده باشد.

در پی اچ پی و در هر جایی از برنامه، نوع متغیر بر اساس مقداری که دریافت می کند، مشخص می شود. به طور مثال اگر عدد 10 انتساب داده شود، پس نوع متغیر integer (عدد صحیح) است و اگر رشته amirnami  انتساب داده شود، پس نوع متغیر رشته (string) خواهد بود. به عبارت دیگر در پی اچ پی زمانی که متغیری نخست با مقداری عددی، تعریف شده باشد، می توان در جای دیگری از فایل یا برنامه، به آن مقدار رشته یا ممیز شناور یا آرایه انتساب دهیم. ولی در زبان هایی مانند سی پلاس پلاس، چنین چیزی همیشه درست نیست. به طور نمونه نمی توانیم در متغیری از نوع int مقدار float را ذخیره کنیم ولی وارونه آن، یعنی ذخیره int در متغیر float می تواند صورت گیرد.

در کد شکل نمونه بسیار ساده ای از تعریف متغیرها به نام name$ با مقدار رشته ای (String) و متغیر age$ با مقدار عددی نشان داده شده است. سپس بوسیله تابعی به نام echo مقدار این دو متغیر بر روی برگه وب (Web Page) نمایش داده شده اند. توجه کنید که در پیش روی echo و بوسیله کاراکتر نقطه، یک رشته را میان مقدار دو متغیر الحاق (Join) داده ایم. پس از کاراکتر یا به عبارت بهتر عملگر (Operator) نقطه برای الحاق دو مقدار به کار گرفته می شود.

در کد شکل زیر و بوسیله عبارت شرطی if … else بررسی شده است که آیا یک متغیر (از هر گونه عددی، رشته ای، آرایه) دارای مقدار است یا نه؟ برای این منظور در شرط if تابع درونی (Built-in) به نام ()empty به کار گرفته شده است. اگر همانند شکل زیر، متغیر (در اینجا متغیر name$) بدون مقدار باشد، تابع مقدار TRUE و در صورتی که متغیر دارای مقدار باشد، مقدار FALSE برگشت داده می شود.

تبدیل گونه (نوع) در پی اچ پی

تبدیل گونه (Type Casting) یکی از مهمترین ویژگی های درون زبان های برنامه نویسی است که اهمیت زیادی در برنامه نویسی دارد. تبدیل نوع به دو روش نا آشکارا (غیر صریح یا Implicitly) و آشکارا (صریح یا Explicitly) انجام می شود. گفتیم که پی اچ پی همانند زبان سی پلاس پلاس است، پس تبدیل گونه (نوع) نیز تا اندازه ای همانند به زبان سی پلاس پلاس خواهد بود.

در شکل زیر و به گونه آشکارا و بوسیله عملگرهای تبدیل گونه، متغیر age$ را به گونه های متفاوت، تبدیل کرده ایم. توجه کنید در بدنه echo تابع ()gettype را برای نمایش گونه (نوع) متغیر، به کار برده ایم. برابر با شکل زیر، عملگرهای تبدیل گونه به صورت واژه کلیدی گونه (نوع یا DataType) که میان پرانتزهای باز و بسته قرار گرفته اند. همچنین شکل دیگر خروجی کد شکل زیر را نشان می دهد. می بینید که در گام گونه متغیر age$ تبدیل و بوسیله تابع ()gettype گونه متغیر در آن خط نشان داده شده است.

ثابت ها در پی اچ پی

ثابت (Constant) در برابر متغیر (Variable) هستند و بر خلاف متغیرها که مقدار آنها می تواند تغییر کند، ولی مقدار یک ثابت پس از تعریف آن هرگز تغییر نخواهد کرد. در پی اچی برای تعریف یک ثابت، باید تابع define را به کار ببریم که پارامتر نخست آن یک رشته که برابر با نام ثابت و پارامتر دوم برابر با مقدار ثابت است. در کد زیر، سه ثابت به نام های PI و UNITS و constant تعریف شده اطند. مقدار ثابت یکم، عدد ۳.۱۴۲، مقدار دومی یک آرایه انجمنی است که در مطلب پیش رو با آن آشنا می شوید و سومی با مقدار رشته خالی، مقدار دهی شده است. مورد مهمی که باید توجه کنید این است که معولا ثابت ها را حرف (نویسه های) بزرگ تعریف می کنند و در زمان به کار گیری درون برنامه یا نمایش مقدار آنها، نباید پیش روی آنها کاراکتر $ قرار گیرد، زیرا آنها متغیر نیستند.