متغیرهای PHP

متغیرها مخزن‌هایی برای ذخیره اطلاعات هستند:

Example

<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>

Running Example

مانند جبر

x=5
y=6
z=x+y

در جبر از حروف (مثلاً x) برای ذخیره ارزش‌ها (مثلاً 5) استفاده می‌کنیم.

از فرمول بالا z=x+y، ما می‌توانیم مقدار z را 11 محاسبه کنیم.

در PHP، این سه حرف به عنوانمتغیر.

Note:متغیرها را به عنوان مخزن‌های ذخیره داده در نظر بگیرید.

متغیرهای PHP

مانند جبر، متغیرهای PHP می‌توانند برای ذخیره ارزش‌ها (x=5) و عبارات (z=x+y) استفاده شوند.

نام متغیر می‌تواند خیلی کوتاه باشد (مثلاً x و y)، یا می‌تواند نام‌های توصیفی‌تری داشته باشد (مثلاً carname، total_volume).

قوانین متغیر در PHP:

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

Note:نام متغیرهای PHP حساس به حروف بزرگ و کوچک هستند!

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

PHP دستوری برای ایجاد متغیر ندارد.

متغیرها در اولین بار که به آن‌ها ارزشی داده می‌شود، ایجاد می‌شوند:

Example

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

Running Example

پس از اجرای این دستورات، متغیر txt ارزش Hello world! را حفظ خواهد کرد، متغیر x ارزش 5 را حفظ خواهد کرد و متغیر y ارزش 10.5 را حفظ خواهد کرد.

Note:اگر می‌خواهید ارزش متغیر را متن قرار دهید، آن را در قید‌ها قرار دهید.

PHP یک زبان نوع گسترده است

در مثال بالا، توجه داشته باشید که نیازی به اطلاع دادن به PHP از نوع داده متغیرها نیست.

PHP به صورت خودکار متغیرها را بر اساس ارزش آن‌ها به نوع داده صحیح تبدیل می‌کند.

در زبان‌هایی مانند C و C++ و Java، برنامه‌نویسان باید قبل از استفاده از متغیر، نام و نوع آن را اعلام کنند.

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

در PHP، می‌توان متغیرها را در هر جایی از اسکریپت خود تعریف کرد.

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

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

  • local (محلی)
  • global (گلوبال)
  • static (استاتیک)

محدوده Local و Global

توابعخارجمتغیرهای تعریف شده دارای محدوده Global هستند و فقط می‌توانند در خارج از توابع دسترسی پیدا کنند.

توابعداخلمتغیرهای تعریف شده دارای محدوده LOCAL هستند و فقط می‌توانند در داخل تابع دسترسی پیدا کنند.

مثال زیر، تستی برای متغیرهایی با محدوده محلی و全局 انجام می‌دهد:

Example

<?php
$x=5; // محدوده全局
function myTest() {
  $y=10; // محدوده محلی
  echo "<p>تغییرات داخل تابع تست:</p>";
  echo "متغیر x است: $x";
  echo "<br>";
  echo "متغیر y است: $y";
} 
myTest();
echo "<p>تغییرات خارج از تابع تست:</p>";
echo "متغیر x است: $x";
echo "<br>";
echo "متغیر y است: $y";
?>

Running Example

در مثال بالا، دو متغیر $x و $y و یک تابع myTest() وجود دارد. $x یک متغیر全局 است، زیرا در خارج از تابع تعریف شده است، و $y یک متغیر محلی است، زیرا در داخل تابع تعریف شده است.

اگر دو ارزش متغیرها را در داخل تابع myTest() چاپ کنیم، ارزش $y به ارزش محلی آن چاپ خواهد شد، اما ارزش $x چاپ نخواهد شد، زیرا آن در خارج از تابع ایجاد شده است.

پس، اگر دو ارزش متغیرها را در خارج از تابع myTest() چاپ کنیم، ارزش $x چاپ خواهد شد، اما ارزش $y چاپ نخواهد شد، زیرا آن یک متغیر محلی است و در داخل myTest() ایجاد شده است.

Note:You can create local variables with the same name in different functions because local variables can only be recognized by the function in which they are created.

PHP global keyword

The global keyword is used to access global variables within a function.

To do this, use the global keyword before the variable (inside the function):

Example

<?php
$x=5;
$y=10;
function myTest() {
  global $x,$y;
  $y=$x+$y;
}
myTest();
echo $y; // Output 15
?>

Running Example

PHP stores all global variables in an array named $GLOBALS[index]. The index contains the variable name. This array can also be accessed within the function and can be used to directly update global variables.

The above example can be rewritten as:

Example

<?php
$x=5;
$y=10;
function myTest() {
  $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
} 
myTest();
echo $y; // Output 15
?>

Running Example

PHP static keyword

Generally, all variables are deleted after a function is completed/executed. However, sometimes I need to not delete a local variable. To achieve this, further work is required.

To do this, use it when you first declare a variable static Keywords:

Example

<?php
function myTest() {
  static $x=0;
  echo $x;
  $x++;
}
myTest();
myTest();
myTest();
?>

Running Example

Then, every time the function is called, the information stored in this variable is the information contained in the last call to the function.

Note:This variable is still a local variable of the function.