PHP:متغیرها در PHP

از ویکی کد
پرش به ناوبری پرش به جستجو

متغیرها «نگه‌دارنده‌هایی» برای ذخیره اطلاعات هستند. [۱]

ساختن (تعریف کردن) متغیرهای PHP

در PHP، یک متغیر با علامت $ شروع می‌شود، که پس از آن نام متغیر نیز قرار گرفته‌است:

مثال

1 <?php
2 $txt = "Hello world!";
3 $x = 5;
4 $y = 10.5;
5 ?>

بعد از اجرای کدهای بالا، متغیر $txt مقدار Hello world! را نگه داری خواهد کرد، متغیر $x مقدار 5، و متغیر $y نیز مقدار ۱۰٫۵ را نگهداری خواهد کرد.

نکته: زمانی که شما یک متغیر را با یک مقدار متنی مقداردهی می‌کنید، مقدار متنی را درون علامت کوتیشن قرار دهید.

نکته: برخلاف سایر زبان‌های برنامه‌نویسی، PHP هیچ‌گونه دستور برای تعریف یک متغیر ندارد. یک متغیر لحظه‌ای که شما آن را مقداردهی می‌کنید، ساخته می‌شود.


متغیرهای PHP

یک متغیر می‌تواند نامی کوتاه (همانند x و y) یا یک نام خود تشریح (همانند age,carname,total_volume) داشته باشد.

قوانین متغیرهایPHP عبارتند از:

  • یک متغیر با علامت $ شروع می‌شود، که پس از این علامت نام متغیر قرار می‌گیرد
  • نام یک متغیر می‌بایست با یک حرف یا کاراکتر زیر خط _ شروع شود
  • نام یک متغیر نمی‌تواند با یک عدد شروع شود
  • نام یک متعیر فقط می‌تواند شامل کاراکترهای حرفی A-z، عددی 0-9 و علامت زیرخط _ باشد
  • نام متغیرها در PHP حساس به حروف کوچک و بزرگ هستند. ($age و $AGE دو متغیر متفاوت هستند)


چاپ‌کردن متغیرها در خروجی

تکه کد echo در PHP اغلب برای چاپ داده در خروجی استفاده می‌شود.

مثال زیر به شما نشان می‌دهد که چگونه یک متن و یک متغیر را در خروجی چاپ کنید:

مثال

1 <?php
2 $txt = "Wikicod.ir";
3 echo "I love $txt!";
4 ?>

مثال زیر، نتیجهٔ مشابه مثال بالا خواهد داشت:

مثال

1 <?php
2 $txt = "Wikicod.ir";
3 echo "I love " . $txt . "!";
4 ?>

مثال زیر مجموع دو متغیر را چاپ خواهد کرد:

مثال

1 <?php
2 $x = 5;
3 $y = 4;
4 echo $x + $y;
5 ?>


PHP یک زبان معمولی است

در مثال بالا، توجه داشته باشید که ما نوع داده متغیر را مشخص نکردیم.

PHP به صورت خودکار نوع نوع داده متغیر را با توجه به مقدار آن مشخص می‌کند. از آنجا نوع داده‌ها در لحظه تنظیم نمی‌شود، شما می‌توانید کاری همانند اضافه کردن یک رشته متنی را با یک نوع داده صحیح (به انگلیسی: Integer) بدون دریافت خطا جمع کنید.

در ورژن 7 PHP، تعریف نوع داده‌ها به PHP اضافه شدند. این امر موجب می‌شود که نوع داده را به جز هنگام تعریف یک تابع بتوان مشخص کرد و به خاطر تعیین نیازمندیهای ضروری، در صورت وجود مغایرت در نوع داده‌ها خطای "Fatal Error" رخ می‌دهد.

شما در مورد نیازمندهای ضروری strict و غیرضروری non-strict و تعریف نوع داده‌ها در فصل توابع PHP مطالب بیشتری را خواهید آموخت.

محدوده دسترسی متغیرها در PHP

در PHP، متغیرها را می‌توان در هر جایی در برنامه تعریف کرد.

محدوده متغیر بخشی از برنامه است که می‌توان به متغیر در آن بخش دسترسی داشت/یا از آن استفاده کرد.

PHP سه نوع محدوده متغیر متفاوت دارد:

  • محلی (به انگلیسی: Local)
  • سراسری (به انگلیسی: Global)
  • استاتیک (به انگلیسی: Static)

محدوده متغیر سراسری و محلی

یک متغیر که خارج از یک تابع تعریف شده‌است محدوده تعریف سراسری دارد و تنها به آن می‌توان از خارج یک تابع دسترسی داشت:

مثال

متغیر با محدوده دسترسی سراسری:

 1 <?php
 2 $x = 5; // global scope
 3 
 4 function myTest() {
 5     // استفاده از متغیر x در این تابع موجب بروز خطا می‌شود.
 6     echo "<p>Variable x inside function is: $x</p>";
 7 }
 8 myTest();
 9 
10 echo "<p>Variable x outside function is: $x</p>";
11 ?>

یک متغیر که درون یک تابع تعریف شده‌است محدوده دسترسی محلی دارد و به آن تنها می‌توان درون همان تابع دسترسی داشت:

مثال

متغیری با محدوده دسترسی محلی:

 1 <?php
 2 function myTest() {
 3     $x = 5; // local scope
 4     echo "<p>Variable x inside function is: $x</p>";
 5 }
 6 myTest();
 7 
 8 // استفاده از متغیر x در این تابع موجب بروز خطا می‌شود.
 9 echo "<p>Variable x outside function is: $x</p>";
10 ?>

کلمه کلیدی global در PHP

کلمه کلیدی global برای دسترسی به یک متغیر با محدوده دسترسی سراسری از درون یک تابع استفاده می‌شود.

برای انجام این‌کار، از کلمه کلیدی global قبل از متغیر (درون تابع) استفاده کنید:

مثال

 1 <?php
 2 $x = 5;
 3 $y = 10;
 4 
 5 function myTest() {
 6     global $x, $y;
 7     $y = $x + $y;
 8 }
 9 
10 myTest();
11 echo $y; // outputs 15
12 ?>

همچنین PHP تمامی متغیرهایی که محدوده دسترسی آنها سراسری (به انگلیسی: global) است را در یک آرایه به نام $GLOBALS[index] ذخیره می‌کند. مقدار index نام متغیراست. همچنین این آرایه از درون توابع قابل دسترسی است و از آن می‌توان برای بروزرسانی متغیرهایی که محدوده دسترسی آنها سراسری است، استفاده کنید.

مثال فوق را می‌توان به صورت مثال زیر، بازنویسی کرد:

مثال

 1 <?php
 2 $x = 5;
 3 $y = 10;
 4 
 5 function myTest() {
 6     $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
 7 }
 8 
 9 myTest();
10 echo $y; // outputs 15
11 ?>

کلمه کلیدی static در PHP

به صورت عادی، زمانی که یک تابع به اتمام می‌رسد/به طورکامل اجرا می‌شود، تمامی متغیرهایش حذف می‌گردد. اما گاهی اوقات ما متغیری با محدوده دسترسی محلی نیاز داریم که حذف نشود. ما این نوع متغیر را برای آینده نیاز داریم.

برای انجام این‌کار، از کلمه کلیدی static در هنگام تعریف متغیر استفاده کنید:

مثال

 1 <?php
 2 function myTest() {
 3     static $x = 0;
 4     echo $x;
 5     $x++;
 6 }
 7 
 8 myTest();
 9 myTest();
10 myTest();
11 ?>

سپس، هر باری که تابع اجرا می‌شود، آن متغیر تمام اطلاعاتی را که از اجرای آخر در دست دارد را درخود نگه داشته و حذف نمی‌شود.

نکته: محدوده دسترسی این نوع متغیر برای تابع به صورت محلی (به انگلیسی: local) است.

منابع آموزشی