آموزش PHP : متغیر ها
متغیر ها دربرگیرنده ی اطلاعات هستند. در ادامه ی این بخش به اصول استفاده از متغیر ها در PHP خواهیم پرداخت.
ساختن / تعریف متغیر در PHP
در پی اچ پی نام متغیر ها را با علامت دلار ($) آغاز میکنیم و در ادامه نام متغیر را درج میکنیم. مثلا :
1 2 3 4 5 | <?php $txt = "سلام دنیا!"; $x = 5; $y = 10.5; ?> |
پس از اجرای کد بالا، متغیر $txt
حاوی عبارت “سلام دنیا!”، متغیر $x
حاوی عدد 5 و متغیر $y
دارای مقدار 10.5 خواهد بود.
نکته : وقتی تصمیم داریم متنی را در متغیری قرار دهیم، از علامت کوتیشن در اطراف متن استفاده میکنیم. مانند مثال بالا.
نکته : بر خلاف زبان های دیگر، پی اچ پی فرمانی برای تعریف متغیر ها ندارد. بنابراین هر متغیر به محض اینکه مقداری به آن نسبت بدهید، تعریف و ایجاد خواهد شد.
ویژگی ها و قوانین متغیر ها در PHP
نام یک متغیر میتواند کوتاه (مثل x و y) یا بلند بوده و شرح محتوای متغیر را نیز شامل شود. (مثل age یا name یا total_value) به طور کلی در نامگذاری متغیر ها در پی اچ پی باید موارد زیر را رعایت کنید :
- متغیر همواره با علامت $ آغاز شده و در ادامه نام آن درج میشود
- نام متغیر باید با حروف یا کارکتر آندرلاین آغاز شود.
- نام متغیر نمیتواند با عدد آغاز شود
- نام متغیر فقط میتواند شامل حروف، اعداد و علامت آندرلاین باشد
- نام متغیر به بزرگی و کوچکی حروف حساس است. مثلا متغیر
$age
با$AGE
متفاوت خواهد بود.
ایجاد خروجی از متغیر ها
برای نمایش مقدار متغیر ها در خروجی به ساده ترین حالت معمولا از echo استفاده میکنیم. در مثال زیر میتوانید مشاهده کنید که چگونه یک متغیر را به همراه متن دلخواه در خروجی به نمایش گذاشته ایم :
1 2 3 4 | <?php $text = "MrCode.ir"; echo "به $text خوش آمدید!"; ?> |
نتیجه ی اجرای کد بالا، نمایش عبارت “به MrCode.ir خوش آمدید!” خواهد بود. کد زیر نیز دقیقا همان نتیجه را تولید میکند :
1 2 3 4 | <?php $text = "MrCode.ir"; echo "به " . $text . " خوش آمدید!"; ?> |
کد زیر مجموع دو متغیر را نمایش میدهد :
1 2 3 4 5 | <?php $x = 5; $y = 4; echo $x + $y; ?> |
توجه : در بخش بعدی این سری در رابطه با دستور echo بیشتر صحبت خواهیم کرد.
نوع متغیر ها در PHP
اگر به مثال های بالا توجه کرده باشید، در هیچ یک از آنها ما نوع متغیر را برای php مشخص نکردیم. چرا که پی اچ پی خودش بر اساس مقداری که به یک متغیر اختصاص داده میشود، به صورت اتوماتیک نوع مناسبی را برای آن در نظر میگیرد. بنابراین از آنجایی که نوع متغیر ها به صورت استریکت (سخت گیرانه و با تعریف ثابت) از طرف ما مشخص نمیشوند، شما میتوانید به آسانی یک متغیر رشته ای را با یک متغیر عددی جمع ببندید بدون اینکه خطایی اتفاق بیفتد.
اما در PHP 7 امکان مشخص کردن نوع متغیر های ورودی توابع در اختیار ما قرار گرفته است. در این حالت میتوانید انواع مشخصی را برای متغیر ها در نظر بگیرید تا هرگاه شرایط مناسب برای نوع صحیح در متغیر مورد نظر فراهم نباشد، Fatal Error یا خطای مهلک اتفاق بیفتد. در این رابطه در فصل مربوطه به طور کامل صحبت خواهیم کرد.
بازه متغیر ها در PHP
در پی اچ پی، متغیر ها میتوانند در هر جای از کد معرفی شوند. بازه ی متغیر به معنای محل هایی از اسکریپت است که میتوانید یک متغیر را مورد استفاده قرار داده و به آن اشاره کنید. به طور کلی در PHP سه بازه برای متغیر ها وجود دارد :
- local یا محلی
- global یا سراسری
- static یا ثابت
متغیر های لوکال و گلوبال (متغیر های محلی و سراسری)
متغیری که بیرون از یک تابع تعریف میشود، دارای بازه ی سراسری یا گلوبال بوده و فقط بیرون تابع در دسترس است.
1 2 3 4 5 6 7 8 9 10 11 | <?php $x = 5; // متغیر گلوبال function mrcodeTest() { // متغیر x درون تابع قابل استفاده نیست echo "<p>مقدار متغیر x درون تابع : $x</p>"; } mrcodeTest(); echo "<p>مقدار متغیر x بیرون تابع: $x</p>"; ?> |
متغیری که درون یک تابع تعریف میشود، بازه ی محلی داشته و فقط از درون تابع قابل استفاده است :
1 2 3 4 5 6 7 8 9 10 | <?php function mrcodeTest() { $x = 5; // متغیر محلی echo "<p>مقدار متغیر x درون تابع : $x</p>"; } mrcodeTest(); // متغیر x بیرون تابع قابل استفاده نیست echo "<p>مقدار متغیر x بیرون تابع : $x</p>"; ?> |
توابع میتوانند متغیر های محلی با نام یکسان داشته باشند. یعنی میتوانید از متغیر هایی با نام یکسان در توابع مختلف استفاده کنید. این مسئله بخاطر محلی بودن متغیر های تعریف شده درون توابع، خطایی ایجاد نخواهد کرد.
کلمه کلیدی global در پی اچ پی
با استفاده از کلمه کلیدی global میتوانید از یک متغیر سراسری درون یک تابع استفاده کنید. برای این کار کافی است عبارت global
را پیش از نام متغیر در تابع مورد نظر درج کنید :
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $x = 5; $y = 10; function mrcodeTest() { global $x, $y; $y = $x + $y; } mrcodeTest(); // اجرای تابع echo $y; // خروجی معادل ۱۵ خواهد بود ?> |
پی اچ پی همه متغیر های گلوبال را در یک آرایه با نام $GLOBALS[index]
نگهداری میکند. که در آن index
نام متغیر است. این آرایه از داخل توابع نیز در دسترس بوده و میتواند برای آپدیت مستقیم متغیر های سراسری مورد استفاده قرار گیرد. بنابراین میتوان کد بالا را به شکل زیر بانویسی کرد :
1 2 3 4 5 6 7 8 9 10 11 | <?php $x = 5; $y = 10; function mrcodeTest() { $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y']; } mrcodeTest(); echo $y; // خروجی معادل ۱۵ خواهد بود ?> |
کلمه کلیدی static در پی اچ پی
به طور معمول وقتی اجرای تابعی به پایان میرسد، تمامی توابع آن حذف میشوند. اما گاهی ممکن است نیاز باشد که از حذف یک متغیر محلی جلوگیری کنید تا بعدا برای کار دیگری از آن استفاده کنید. برای این کار در اولین تعریف متغیر مربوطه از کلمه کلیدی static استفاده میکنیم :
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php function mrcodeTest() { static $x = 0; echo $x; $x++; } mrcodeTest(); echo "<br>"; mrcodeTest(); echo "<br>"; mrcodeTest(); ?> |
در این حالت هر بار که تابع را صدا میکنیم، متغیر هنوز اطلاعات قبلی خود را درون خود نگه داشته است. بنابراین نتیجه ی سه بار فراخوانی تابع، سه مقدار متفاوت خواهد بود.
توجه داشته باشید که این متغیر، هرچند به صورت static تعریف شده اما کماکان یک متغیر محلی و مختص تابعی است که آن را تعریف کرده است.
مطالعه قسمت بعدی : آشنایی با Echo و Print