متغیرها در PHP

From ویکی کد
Jump to navigation Jump to search
Main Page Tutorial
Php-menu.png
موارد آموزشی
۱خانه
۲مقدمه
۳نصب
۴شیوهٔ نوشتار
۵کامنت‌ها
۶متغیرها
۷دستورات چاپ
۸انواع داده
۹مقادیر متنی
۱۰اعداد
۱۱ثابت‌ها
۱۲عملگرها
۱۳دستورات if...else…elseif
۱۴دستور Switch
۱۵حلقه‌ها
۱۶توابع
۱۷آرایه‌ها
۱۸متغیرهای سراسری
فرم‌ها در PHP
PHP پیشرفته
شیء گرایی در PHP
پایگاه داده MySQL
XML در PHP
AJAX در PHP
مثال‌های 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 دو متغیر متفاوت هستند)
به یاد داشته باشید که PHP برای نام متغیرها حساس به حروف کوچک و بزرگ است!

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

تکه کد 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 ?>

مشاهدهٔ نتیجه

نکته: شما مطالب بیشتری را در مورد دستور echo و نحوه چاپ داده در فصل بعدی خواهید آموخت.

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) است.

تمرینات PHP

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.



منابع آموزشی