در ادامه مطلب همراه ما باشید
آموزش PHP – متغییرها
متغییر ها، ظرفی برای ذخیره اطلاعات هستند.
<?php $x=5; $y=6; $z=$x+$y; echo $z; ?> |
خروجی کد بالا بصورت زیر است :
۱۵ |
آیا جبر را از زمان مدرسه به یاد دارید؟
x=5, y=6, z=x+y
آیا به یاد می آورید که یک حرف (مانند x) می تواند برای نگهداری یک مقدار (مثل ۵) به کار رود و شما می توانید طبق اطلاعات بالا مقدار z را برابر ۱۱ ارزیابی کنید.
این حروف، متغییر نامیده می شوند و آنها را می توان برای نگهداری مقادیر (x=5) و یا عبارات (z=x+y) استفاده کرد.
x=5
y=6
z=x+y
متغییر ها در PHP
متغیرها برای ذخیره ی مقادیر مانند رشته های متنی، اعداد، یا آرایه ها استفاده می شوند.
زمانی که یک متغییر را تعریف می کنید، می توانید آنرا در کدتان بارها و بارها استفاده کنید.
در PHP متغییر ها برخلاف C نوع خاصی ندارند، و از متغییرها بدون تعریف قبلی می توان استفاده نمود.
هر متغییر با علامت $ در ابتدای آن مشخص می شود.
روشی صحیح برای تعریف یک متغییر در PHP:
$var_name = value; |
توجه: اغلب برنامه نویسان تازه کار در PHP فراموش می کنند که در ابتدای نام متغییر علامت $ را درج کنند، در این صورت برنامه کار نخواهد کرد.
مثال۱: در زیر یک متغییر با محتویات رشته و یک متغییر دیگر با محتویات عدد تعریف شده است:
<?php |
قواعد نامگذاری متغیر ها در PHP
نام یک متغیر باید با یک حرف یا یک “_” آغاز شود.
نام یک متغیر می تواند شامل اعداد، حروف کوچک و بزرگ و “_” باشد. (۰-۹,A-Z,a-z)
نام متغیر ها نباید شامل فضای خالی باشد.
نام متغییرها به حروف بزرگ و کوچک حساس است. (y$ و Y$ دو متغییر متفاوت اند) بیاد داشته باشید که متغییرها در PHP به حروف کوچک و بزرگ حساس هستند.
ایجاد یا اعلان متغییرها در PHP
در PHP دستوری برای ایجاد متغییرها وجود ندارد.
یک متغییر زمانی که مقداری را به آن اختصاص می دهید ایجاد می شود.
<?php echo $txt; |
خروجی کد بالا بصورت زیر است :
Hello world! |
بعد از اجرای مثال بالا، متغییر txd مقدار “!Hello world”، متغییر x مقدار “۵” و متغییر y مقدار “۱۰٫۵” را در خود نگهداری می کنند.
توجه: زمانی که می خواهید یک مقدار رشته ای را به یک متغییر اختصاص دهید از علامت ‘ استفاده نمایید.
PHP یک زبان بی ربط و بی قاعده (Loosely Type Language)
در PHP یک متغیر نیازی به تعریف پیش از استفاده ندارد.
در مثال بالا، می بینید که مجبور نیستید به PHP بگویید که متغیر از چه نوع داده ای است، PHP به طور خودکار متغیر ها را به نوع داده ای مناسب شان تبدیل می کند که بستگی دارد چگونه مقدار دهی شده باشند.
در یک زبان برنامه نویسی قوی (مانند C یا Java) شما باید نوع و اسم متغییر را پیش از استفاده تعیین کنید. در PHP متغیر ها زمانی که شما از آنها استفاده می کنید به طور خود کار تعریف می شوند.
محدوده متغییرها در PHP
در PHP، متغییرها در هرجایی از کد می توانند اعلان شوند.
منظور از محدوده، بخشی از اسکریبت است که متغییر می تواند در آن محدوده استفاده شود.
سه محدوده مختلف برای متغییرها وجود دارد:
local
global
static
متغییر های محلی (local) در PHP
متغییرهایی که داخل یک تابع اعلان شده اند، تنها داخل همان تابع، قابل دسترسی اند. (متغییرهای با قلمرو محلی)
متغییرهای محلی به محض اینکه عملیات تابع تکمیل شد، حذف می شوند.
شما می توانید در توابع مختلف، متغییرهای محلی با نام های یکسان داشته باشید. بخاطر اینکه متغییرهای محلی، تنها بوسیله تابعی که آنها را اعلان کرده است شناخته می شوند.
متغییر های عمومی (global) در PHP
متغییرهایی که خارج از توابع اعلان شده اند، عمومی می شوند، و در تمام اسکریبت بجز توابع، به آنها دسترسی خواهد بود.
زمانی که یک صفحه وب را ببندید، متغییرهای عمومی حذف خواهند شد.
در مثال زیر، می توانید محدوده متغییرهای محلی و عمومی را مشاهده نمایید:
<?php function myTest() myTest(); echo “<p>Test variables outside the function:<p>”; |
خروجی کد بالا بصورت زیر است :
Test variables inside the function: variables outside the function: |
در مثال بالا، دو متغییر x$ و y$ و یک تابع ()myTest وجود دارد. متغییر x$، بخاطر اینکه خارج از تابع اعلان شده، عمومی است و متغییر y$، بخاطر اینکه داخل تابع اعلان شده، محلی است.
زمانی که داخل تابع ()myTest، مقادیر متغییرها را چاپ می کنیم، مقدار متغییر y$ بخاطر اینکه محلی است چاپ می شود، اما مقدار متغییر x$، چونکه خارج از تابع اعلان شده است نمی تواند چاپ شود.
سپس، زمانی که مقادیر متغییرها را خارج از تابع ()myTest چاپ می کنیم، مقدار متغییر x$ چاپ می شود، اما مقدار متغییر y$، چونکه داخل تابع ()mytest اعلان شده است نمی تواند چاپ شود.
کلمه کلیدی global در PHP
با استفاده از کلمه کلیدی global، می توانید به متغییرهای عمومی در داخل یک تابع دسترسی داشته باشید.
برای انجام این کار، از کلمه کلیدی global، قبل از نام متغییر استفاده نمایید:
<?php function myTest() myTest(); |
خروجی کد بالا بصورت زیر است :
۱۵ |
در PHP، با استفاده از آرایه GLOBALS$ نیز می توانید به متغییرهای عمومی دسترسی داشته باشید. در واقع تمام متغییرهای عمومی در این آرایه ذخیره می شوند و با استفاده از نام متغییر بعنوان ایندکس آرایه می توانید به متغییرها، دسترسی داشته باشید.
بازنویسی مثال بالا، با استفاده از آرایه GLOBALS$:
<?php function myTest() myTest(); |
خروجی کد بالا بصورت زیر است :
۱۵ |
کلمه کلیدی static در PHP
بطور معمول زمانی که اجرای یک تابع به پایان می رسد، تمام متغییرهای آن نیز حذف خواهند شد. اما بعضی مواقع نیاز می شود که یک متغییر محلی برای استفاده های بعدی حذف نشود.
برای انجام این کار، از کلمه کلیدی static در ابتدای اعلان متغییر، استفاده نمایید:
<?php function myTest() myTest(); ?> |
خروجی کد بالا بصورت زیر است :
۰ |
هر زمان که تابع صدا زده می شود، آخرین مقدار متغییر static، حفظ می شود.
توجه: در مثال بالا، متغییر x$ محلی است و فقط در داخل تابع به آن دسیرسی وجود دارد.