متغیر در PHP یکی از مفاهیم اصلی در برنامهنویسی «Programming» هستند. از آنها برای ذخیره دادهها «Data storage» استفاده میشود که میتوانند در کد شما دسترسی و تغییر یابند. استفاده از متغیر در PHP آسان است، تایپ دینامیک دارند «Dynamic typing» (یعنی نیازی به اعلام صریح نوع داده آنها نیست) و برای ایجاد برنامههای وب دینامیک «Dynamic web »و تعاملی ضروری هستند.
مقدمه
متغیر در PHP برای ذخیرهسازی دادهها و انجام عملیات مختلف بر روی آنها استفاده میشوند. متغیرها ابزارهای ضروری در برنامهنویسی هستند که به ما این امکان را میدهند که اطلاعات را در برنامههای وب مدیریت کرده و از آنها در محاسبات، نمایش دادهها و تعامل با کاربران استفاده کنیم.
متغیر در PHP با علامت دلار $ معرفی میشوند و میتوانند انواع مختلفی از دادهها مانند اعداد صحیح «Integer» ، اعشاری «Decimal»، رشتهها «String» و آرایهها «Array» را ذخیره کنند. یکی از ویژگیهای برجسته PHP این است که متغیرها «Variables» به صورت دینامیک تایپ میشوند، به این معنا که نیازی به تعریف نوع داده «Data type» آنها نیست و PHP خود به طور خودکار نوع داده مناسب را تخصیص میدهد.
در این زبان، متغیر در PHP میتوانند در دامنههای مختلفی قرار گیرند که بر نحوه دسترسی به آنها تأثیر میگذارد، از جمله دامنههای محلی «Local domains»، سراسری «Global domains»، استاتیک «Static» و سوپرگلوبال «Super Global». متغیر در PHP بخش اصلی برای ایجاد برنامههای پویا و تعاملی هستند.
اعلان متغیر در PHP
برای اعلان یک متغیر در PHP، کافی است مقداری را به آن اختصاص دهید با استفاده از نماد $ که به دنبال آن نام متغیر قرار میگیرد. متغیر در PHP حساس به حروف بزرگ و کوچک هستند و باید با یک حرف یا یک آندرلاین آغاز شوند، و پس از آن میتوانند شامل هر تعداد حرف، عدد یا آندرلاین باشند.
مثال:
<?php $name = "XYZ"; // String $age = 30; // Integer $salary = 45000.50; // Float $isEmployed = true; // Boolean ?>
قوانین نام گذاری متغیرها
در PHP، پیروی از قوانین خاصی برای نامگذاری متغیرها اهمیت دارد تا خوانایی و نگهداری کد تضمین شود:
- شروع با یک حرف یا آندرلاین: نامهای متغیر باید با یک حرف یا آندرلاین (_) شروع شوند، نه با عدد.
- استفاده از نامهای توصیفی: نامهای متغیر باید توصیفی از هدف آنها باشند، به عنوان مثال، userName$ یا totalAmount$.
- حساسیت به حروف بزرگ و کوچک: نامهای متغیر در PHP حساس به حروف بزرگ و کوچک هستند، به این معنی که name$ و Name$ دو متغیر مختلف هستند.
- اجتناب از کلمات رزرو شده: از استفاده از کلمات رزرو شده یا کلیدواژههای PHP به عنوان نام متغیر (مثل function, class, echo) خودداری کنید.
مثالهای نامهای متغیر معتبر و نامعتبر:
<?php $firstName = "Alice"; // Valid $_age = 25; // Valid $2ndPlace = "Bob"; // Invalid: Cannot start with a number $class = "Physics"; // Valid, but avoid reserved words ?>
انواع داده ها در PHP
- اعداد صحیح (Integers): اعداد صحیح اعدادی هستند که بدون اعشار بوده و میتوانند مثبت یا منفی باشند.
- اعداد اعشاری (Doubles): اعداد اعشاری اعدادی هستند که شامل نقطه اعشار یا به صورت نمایی نوشته میشوند.
- NULL: نوع داده NULL نمایانگر یک متغیر است که هیچ مقداری ندارد.
- رشتهها (Strings): رشتهها دنبالهای از کاراکترها هستند که در داخل کوتیشنهای تک (‘ ‘) یا دوتایی (” “) قرار میگیرند.
- بولینها (Booleans): بولینها دو مقدار ممکن دارند: true یا false.
- آرایهها (Arrays): آرایهها برای ذخیره چندین مقدار در یک متغیر استفاده میشوند. آرایهها میتوانند اندیسی، انجمنی یا چندبعدی باشند.
- اشیا (Objects): اشیاء نمونههایی از کلاسها هستند که الگوهایی برای ایجاد ساختارهای داده با ویژگیها و متدها میباشند.
- منابع (Resources): منابع متغیرهای خاصی هستند که مراجع به منابع خارجی مانند اتصالات به پایگاه داده یا هندلهای فایل را نگه میدارند.
دامنه متغیر در PHP
دامنه یک متغیر به این معناست که در کجا میتوان به آن در کد دسترسی داشت. متغیر در PHP میتوانند دامنههای محلی، جهانی، استاتیک یا سوپرگلوبال داشته باشند.
دامنه محلی یا متغیر محلی در PHP
متغیرهایی که درون یک تابع اعلام میشوند، دامنه محلی دارند و نمیتوان از خارج از تابع به آنها دسترسی داشت. هرگونه اعلام یک متغیر با همان نام در خارج از تابع، یک متغیر کاملاً متفاوت است.
مثال:
این مثال نشان میدهد که چگونه یک متغیر محلی در PHP استفاده میشود.
<?php $num = 60; function local_var() { // This $num is local to this function // The variable $num outside the function // is a completely different $num = 50; echo "Variable num inside function is: $num \n"; } local_var(); // The $num outside function is a completely // different from inside local_var() echo "Variable num outside function is: $num"; ?>
خروجی:
Variable num inside function is: 50 Variable num outside function is: 60
دامنه سراسری یا متغیر سراسری در PHP
متغیرهایی که خارج از یک تابع اعلان میشوند، متغیرهای سراسری نام دارند. این متغیرها را میتوان به طور مستقیم از خارج از تابع دسترسی داشت. برای دسترسی به آنها در داخل یک تابع، باید از کلمهکلیدی global استفاده کرد تا به متغیر سراسری اشاره شود.
مثال:
این مثال نشان میدهد که چگونه میتوان از متغیرهای سراسری در PHP استفاده کرد.
<?php $num = 20; // Function to demonstrate use of global variable function global_var() { // We have to use global keyword before // the variable $num to access within // the function global $num; echo "Variable num inside function: $num \n"; } global_var(); echo "Variable num outside function: $num \n"; ?>
خروجی:
Variable num inside function: 20 Variable num outside function: 20
متغیرهای استاتیک در PHP
یکی از ویژگیهای متغیر در PHP این است که متغیرها را پس از اتمام اجرای کد و آزاد شدن حافظه حذف میکند. اما گاهی نیاز داریم که متغیرها را حتی پس از اتمام اجرای تابع نگهداری کنیم. برای این کار از کلمه کلیدی استاتیک استفاده میکنیم و متغیرها به نام متغیرهای استاتیک شناخته میشوند. PHP با توجه به مقدار متغیر، نوع دادهای مناسب را برای آن تعیین میکند.
مثال: این مثال متغیر استاتیک در PHP را نشان میدهد.
<?php // Function to demonstrate static variables function static_var() { // Static Variable static $num = 5; $sum = 2; $sum++; $num++; echo $num, "\n"; echo $sum, "\n"; } // First function call static_var(); // Second function call static_var(); ?>
خروجی:
۶ ۳ ۷ ۳
توجه: مقدار متغیر num$ به طور منظم حتی پس از اولین فراخوانی تابع افزایش مییابد، اما مقدار sum$ اینطور نیست. دلیل این موضوع این است که sum$ استاتیک نیست و حافظه آن پس از اجرای اولین فراخوانی تابع آزاد میشود.
سوپرگلوبال ها در PHP
سوپرگلوبالها آرایههای از پیش تعریفشده در PHP هستند که از هر نقطهای در اسکریپت قابل دسترسی هستند، حتی داخل توابع. برخی از سوپرگلوبالهای رایج شامل GET، $_POST، $_SESSION، $_COOKIE، $_SERVER و $_GLOBALS میشوند.
<?php // Using $_SERVER superglobal to // get server information echo $_SERVER['SERVER_NAME']; ?>
متغیرهای متغیر در PHP
- PHP به ما این امکان را میدهد که از نامهای متغیر دینامیک استفاده کنیم که به آنها متغیرهای متغیر گفته میشود.
- متغیرهای متغیر به سادگی متغیرهایی هستند که نامهایشان توسط مقدار متغیر دیگری به صورت دینامیک ایجاد میشود.
مثال: این مثال نحوه اعلام یک متغیر با استفاده از متغیر دیگر را نشان میدهد.
<?php $a = 'hello'; //hello is value of variable $a $$a = 'World'; //$($a) is equals to $(hello) echo $hello; //$hello is World i.e. $hello is new variable with value 'World' ?>
خروجی:
World
نتیجه گیری
متغیر در PHP بخش مهمی از برنامهنویسی است که امکان ذخیره و دستکاری دادهها را در طول اجرای برنامه فراهم میکند. متغیرها در PHP به صورت دینامیک تایپ شدهاند و نیاز به اعلان نوع داده ندارند، به این معنی که مقدار آنها میتواند در طول برنامه تغییر کند بدون اینکه نیازی به تعیین نوع مشخصی باشد. متغیرها میتوانند در دامنههای مختلفی مانند محلی، سراسری، استاتیک و سوپرگلوبال تعریف شوند که هرکدام ویژگیهای خاص خود را دارند. متغیرهای محلی تنها در داخل تابعی که تعریف شدهاند قابل دسترسی هستند و در خارج از آن تابع در دسترس نخواهند بود.
متغیرهای سراسری از هر نقطهای خارج از تابع قابل دسترسی هستند، اما برای استفاده از آنها در داخل تابع باید از کلمه کلیدی global استفاده کرد. متغیرهای استاتیک در طول زمان حفظ میشوند و مقدار آنها بین فراخوانیهای متعدد یک تابع ثابت میماند، که این ویژگی برای ذخیره مقدار در بین اجراهای یک تابع کاربرد دارد. با استفاده از این متغیرها، میتوان برنامههای پویا و تعاملی ساخت که به صورت مؤثر دادهها را درون برنامه مدیریت کنند. انتخاب مناسب نوع متغیر و درک دامنه آنها به بهینهسازی عملکرد و خوانایی کد کمک میکند.