تعریف متغیر در php چگونه است؟
متغیرها در php برای ذخیره کردن دادهها مورد استفاده قرار میگیرند. این دادهها در طی کدنویسی شما قرار است کارهای مهمی انجام دهند یا دچار تغییر و تحولات شوند. اما همه این مباحث از تعریف متغیر در php آغاز میگردد. برای تعریف متغیر از علامت دلار ($) استفاده میشود و بعد از آن نام متغیر قرار داده میشود.
مثالهای زیر نمونههایی از تعریف متغیر در php هستند:
$numberme = 10;
$my_name = "Hamid";
$my_boolean = True;
در این مثالها سه متغیر $numberme (از نوع اعداد)، $my_name (از نوع رشته) و $my_boolean (از نوع عبارت منطقی) تعریف شدهاند.
بعد از تعریف و مقداردهی این متغیرها میتوانید از آنها در سایر قسمتهای کد خود استفاده کنید. اما تعریف متغیرها قواعدی هم دارد.
قواعد تعریف متغیر در php
برای تعریف یک متغیر باید نکات زیر را در نظر داشته باشید:
- نام متغیر باید با یک حرف انگلیسی یا علامت زیرخط1Underscore (به صورت مثلاً
_myname) آغاز شود. - به طور کلی در نامگذاری یک متغیر تنها مجاز هستید از حروف انگلیسی، اعداد یا علامت زیرخط استفاده کنید.
- توجه داشته باشید که نام متغیرها در php نسبت به حروف بزرگ و کوچک حساس هستند. لذا اگر نامگذاری شما
$nameباشد و بعد در هنگام استفاده از متغیر،$Nameتایپ کنید، کد شما خطا خواهد داد.
بایدها و نبایدهای نامگذاری متغیرها
در دنیای php برای نامگذاری متغیرها قواعدی تعریف شده است. میتوان آنها را بایدها و نبایدهای نامگذاری متغیرها در پی اچ پی دانست. گرچه رعایت نکردن برخی از این موارد شاید منجر به خطای برنامه نویسی نشود، اما بهتر است هنگام کدنویسی به این نکات توجه داشته باشید:
| بایدها | نبایدها |
|---|---|
| از اسامی معنادار و مناسب که کار متغیر را توصیف میکند، استفاده کنید. | نامگذاری متغیرها با تک حرف زیاد مناسب نیست، مگر برای کاربریهای موقت. |
| از حالت کمل کیس (camelCase) برای نامگذاری متغیرها استفاده کنید. | از نامگذاری متغیرها که با عدد شروع شود، اجتناب کنید. |
| نام متغیر باید با یک حرف یا علامت Underscore آغاز شود. | در نامگذاری متغیرها نمیتوانید از کاراکترهای خاص مانند @ یا # استفاده کنید. |
| سعی کنید در کل کدنویسی خود، از قواعد یکسانی برای نامگذاری متغیرها پیروی کنید. | از کلمات ذخیره شده php برای نامگذاری یک متغیر استفاده نکنید! |
| اگر از حالت camelCase برای نامگذاری استفاده نمیکنید، جهت جدا کردن کلمات در نام متغیر از زیرخط بهره ببرید. | از حالتهای بههمریخته (استفاده از ترکیب حروف کوچک و بزرگ و … به صورت بیهدف) در نامگذاری اجتناب کنید. |
| معمولا برای نامگذاری متغیرها که قرار است در طول برنامه مقدارشان تغییر کند، عمدتاً از حروف کوچک استفاده میشود. | نامگذاری یک متغیر با حروف بزرگ (تمامی حروف بزرگ باشند) معمولاً رایج نیست. این کار بیشتر برای تعریف ثابتها (پارامترهای با مقدار ثابت در طول برنامه) انجام میگیرد. |
محدوده متغیرها در php
یکی از نکات مهمی که هنگام تعریف متغیر در php باید در نظر داشته باشید، مفهوم scope یا محدوده اثرگذاری متغیرها است. در php سه نوع scope وجود دارد:
در ادامه به توضیح هر یک میپردازیم.
محدوده Local برای تعریف متغیر در php
منظور از Local Scope در پی اچ پی آن است که مثلاً اگر متغیری را در داخل یک تابع تعریف کنید، محدوده اثرگذاری این متغیر فقط در داخل همان تابع است. اگر شما خارج از آن تابع، متغیر را فراخوانی کنید، با خطا مواجه میشوید:
function myFunction() {
$localVar = "I'm local";
echo $localVar;
}
myFunction(); // Outputs: I'm local
echo $localVar; // Error: Undefined variable $localVar
در حالیکه اگر خط آخر را از کد فوق حذف کنید، همانطور که در تصویر زیر میبینید، بعد از فراخوانی تابع، مقدار متغیر محلی که درون تابع تعریف شده، نمایش داده میشود.

متغیرهای با محدوده سراسری
در نقطه مقابل، متغیرهای Global Scope قرار دارند. منظور از یک متغیر سراسری یا global در php چیست؟ متغیری که در خارج از محدوده توابع و به صورت آزاد تعریف میشود، دارای اسکوپ global است. اما باید توجه داشته باشید که اگر بخواهید از آن متغیر در داخل یک تابع استفاده کنید، باید کلیدواژه global را قبل از نام متغیر ذکر کنید. برای درک بهتر موضوع، به کد زیر دقت کنید:
$globalVar = "I'm global";
function myFunction() {
global $globalVar;
echo $globalVar;
}
myFunction(); // Outputs: I'm global
echo $globalVar; // Outputs: I'm global
در این مثال، متغیر $globalVar دارای اسکوپ سراسری است. ملاحظه کنید هنگامی که میخواستیم آن را در داخل تابع myFunction استفاده کنیم، کلیدواژه global را به کار بردیم.
تعریف متغیرهای Static Scope
هنگام تعریف متغیر در php میتوان محدوده یا اسکوپ آن را به صورت استاتیک تعریف کرد. این کار با به کار بردن کلیدواژه static در داخل توابع امکانپذیر است. به مثال زیر توجه کنید:
function myFunction() {
static $count = 0;
$count++;
echo $count;
}
myFunction(); // Outputs: 1
myFunction(); // Outputs: 2
myFunction(); // Outputs: 3
احتمالاً با بررسی این کد متوجه شدهاید که متغیر دارای اسکوپ استاتیک، متغیری است که مقدار آن در هر بار فراخوانی تابع حفظ میشود. یعنی مقدار قبلی (هنگام فراخوانی قبلی) در حافظه آن باقی میماند. در مثال فوق هم هر بار که تابع فراخوانی میشود، یک مقدار به مقدار قبلی متغیر $count افزوده میشود.
عملگرها و دستورهای مرتبط با متغیرها
در php انواع مختلفی از متغیرها را میتوان تعریف کرد. بسته به نوع متغیر میتوان عملگرها یا دستورهای مختلفی را بر روی متغیر به کار گرفت. بنابراین آشنایی با این دستورات میتواند گام بعدی شما پس از یادگیری تعریف متغیر در php باشد.
هدف ما در اینجا معرفی تمامی دستورها یا عملگرها نیست! اما به جهت اینکه آشنایی بیشتری با مبحث متغیرها داشته و در عمل نحوه کار با آنها را ببینید، به ذکر چند مثال میپردازیم.
مثلاً میتوانید از دستور echo برای نمایش مقدار متغیر در صفحه موردنظر کمک بگیرید.
$x = 1;
$y = 2;
$sum = $x + $y;
echo $sum; // prints out 3
نکته دیگری که در کد فوق هم قابل ملاحظه است، استفاده از عملگر جمع بر روی دو متغیر تعریفشده است. قابل درک است که میتوانید عملگرهای ریاضی مانند جمع یا تفریق را بر روی متغیرهای تعریفشده، اعمال کنید. سپس خروجی آنها را با دستور echo نمایش دهید.
از جمله دستورهای دیگری که در کار با متغیرها و در واقع برای نمایش خروجی متغیرها به کار میرود، دستور print_r() است.
در کد زیر نحوه استفاده از این دستور برای نمایش خروجی یک آرایه را مشاهده میکنید. ابتدا متغیر $b را از نوع آرایه تعریف کردهایم و سپس با این دستور، خروجی یا مقدار آن را نمایش دادهایم.
$b = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
print_r($b);
جمعبندی
در این مقاله به معرفی متغیرها در php پرداختیم. گفتیم که برای تعریف متغیر در php قواعد خاصی وجود دارد. در مورد محدوده اثرگذاری متغیرهای تعریفشده نیز توضیحاتی ارائه شد. دستورها و عملگرهایی که میتوان بر روی متغیرها در پی اچ پی به کار گرفت، بیان شدند. البته زبان php پر است از دستورها و توابع مختلف که توصیه میکنیم برای یادگیری عمیقتر آن، حتماً یک کتاب آموزش php را مطالعه بنمایید.



