آشنایی با متغیرها در php

تاریخ: 11 تیر 1399

برای ذخیره کردن اطلاعات در php از متغیرها استفاده می شود.

زمانی که میخواهیم داده های متغیری را در برنامه استفاده کنیم (مثل ورودی های یک تابع که معدل دانش آموزان مختلف را محاسبه می کند) لازم است از متغیر ها استفاده کنیم. این متغیر ها به راحتی در متن برنامه قابل استفاده خواهند بود.

 

نحوه تعریف متغیرها در php

برای تعریف متغیرها در php پنج قانون اساسی وجود دارد:

  • نام متغیر حتما با علامت $ شروع می شود.
  • حرف بعد از علامت $ می تواند یکی از حروف a تا z و یا کاراکتر (_) باشد.
  • حروف دوم به بعد می توانند یکی از حروف a تا z، یکی از اعداد 0 تا 9 و همچنین کاراکتر (_) باشد.
  • نام متغیر نمی تواند حاوی space باشد.
  • نام متغیرها به حروف کوچک و بزرگ حساس می باشند. (case-sensitive)
name; //wrong
$_na me; //wrong
$_name; //correct
$name; //correct
$2name; //wrong
$%name; //wrong
$name%; //wrong
$name2; //correct
$name==$Name //false

 

تا زمانی که مقداری به متغیر داده نشود، آن متغیر تعریف شده نبوده و برای php ناشناخته می باشد. لذا لازمه ی استفاده از متغیرها، تعریف آن ها می باشد:

$brand;
$site = 'www.novintech.info';

echo $brand; //output: error undefined variable
echo $site; //output: www.novintech.info

چنانچه مشاهده کردید، برای دادن مقدار به متغیر، از علامت (=) استفاده می شود.

 

ویژگی مهم متغیرها این است که می توانیم مقدار آن ها را در طول اجرای برنامه، هر چقدر که خواستیم تغییر دهیم:

$brand = 'novintech.info';
$brand = 'www.novintech.info';

echo $brand; //output: www.novintech.info

 

برخلاف بسیاری از زبان های برنامه نویسی، در php برای تعریف متغیر، نیاز به تعریف نوع آن متغیر نداریم. php با توجه به مقداری که به متغیر داده می شود، نوع آن را در نظر می گیرد.

 

وارد کردن متغیر در تابع به صورت pass by refrence

معمولا مقادیری که به عنوان آرگومان به تابع ارسال می شوند “مقدار متغیر” هستند و اگر درون تابع هر اتفاقی بر روی این مقدار رخ دهد، تاثیری روی متغیر تعریف شده در خارج از تابع ندارند.

اما خیلی از اوقات نیاز داریم تا مقدار متغیر فعلی را با استفاده از تابع فعلی تغییر دهیم. مثلا یک المان به ابتدای یک آرایه اضافه نماییم:

$x = [];

function addToFirst($value)
{
$value[0] = 'Hello world';
return $value;
}

$x = addToFirst($x);

این کار را با استفاده از pass by refrence می توانستیم خیلی راحت تر انجام دهیم. کافیست قبل از متغیر ورودی در تعریف تابع، علامت (&) را قرار دهیم.

در این صورت ما به جای مقدار متغیر، خود متغیر را وارد کردیم. لذا هر تغییری که روی متغیر درون تابع رخ دهد، روی متغیر در خارج تابع نیز رخ خواهد داد:

$x = 1;

function addToFirst(&$value)
{
$value++;
}

addToFirst($x);

echo $x; //output: 2

یک مثال از کاربرد فوق العاده pass by refrence

$x = Array
  (
  "Items" => Array
  (
    0 => Array
    (
      "Item" => 211,
      "Unit" => 11,
      "Quantity" => 2,
      "GST" => True
    ),

    1 => Array
    (
      "Item" => 210,
      "Unit" => 11,
      "Quantity" => 1,
      "GST" => True
    )

  )
);

foreach($x["Items"] as &$item)
{
$item["user"] = 1;
}

print_r($x);

/*
Array
(
  [Items] => Array
  (
    [0] => Array
    (
      [Item] => 211
      [Unit] => 11
      [Quantity] => 2
      [GST] => 1
      [user] => 1
    )

    [1] => Array
    (
      [Item] => 210
      [Unit] => 11
      [Quantity] => 1
      [GST] => 1
      [user] => 1
    )

  )

)*/

 

آموزش بعدی >> آشنایی با scope یا حوزه تعریف متغیرها در php

دیدگاهتان را بنویسید

طراحی افزونه وردپرس