متغیرها در php
متغیرها مکانی برای ذخیره اطلاعات هستند.
یک متغیر می تواند یک نام کوتاه مانند ($x) و یا یک نام توصیفی تر مانند (name$) باشد.
ساختار متغیر در php
- در زبان php یک متغیر با علامت دلار ($) شروع می شود و سپس به دنبال آن نام متغیر می آید.
- نام متغیر با یک حرف یا کاراکتر زیر خط شروع می شود.
- نام متغیر می تاوند شامل نویسه های عددی و زیر خط باشد(9-0 , A-Z , _ ) اما نمی تواند با عدد شروع شود.
- متغیرهای به حروف کوچک و بزرگ حساس می باشند.
$x =10;
$c = "متغیر"
نکته: هنگامی که یک مقدار متنی را به یک متغیر اختصاص می دهید باید از نقل قول یا علامت دابل کوتیشن (" ") در دو طرف مقدار مورد نظر قرار دهید.
نکته: php برخلاف سایر زبان های برنامه نویسی هیچ دستوری برای اعلان متغیر ندارد. هنگامی ایجاد می شود که برای اولین بار یک مقدار به آن اختصاص یابد.
خروجی متغیر ها
دستور PHP echo اغلب برای خروجی اطلاعات به صفحه نمایش به کار می رود.
$txt = "PNLdev.com";
echo "I love $txt!";
مثال زیر خروجی مثال فوق را تولید می کند:
$txt ="PNLdev.com";
echo "I love " . $txt . "!";
مثال زیر مجموع دو متغیر را خروجی می دهد:
$x = 8;
$y = 6;
echo $x + $y;
توجه: در فصل (Echo/Print) در رابطه با دستور Echo و نحوه خروجی داده ها به صفحه نمایش بیشتر آشنا خواهید شد.
php زبانی تایپ آزاد است.
- همانطور که مشاهده کردید، در مثال فوق ما مجبور نیستیم به php بگوییم که متغیر داده شده کدام نوع از اطلاعات است.
- زبان php به طور خودکار یک نوع از داده را به متغیر وصل می کند از آنجا که داده ها به صورت دقیق تنظیم نشده اند می توان به داده ها یک رشته یا یک عدد صحیح را بدون ایجاد خطا اضافه کرد.
- در نسخه php7 اعلان نوع اضافه شد این اعلان گزینه ای را برای تعیین نوع داده مورد نظر پیشنهاد می دهد و با فعال کردن گزینه شرایط سخت یک "خطای مرگبار" را روی عدم مطابقت نوع ایجاد می کند.
توجه: در فصل (توابع php) در رابطه با الزامات سخت و غیردقیق اعلانات نوع داده بیشتر آشنا خواهید شد.
انواع متغیر در php
php هیچ دستوری برای اعلان متغیر ندارد و نوع داده به مقدار متغیر بستگی دارد.
زبان php از داده های مختلقی پشتیبانی می کند که شامل موارد زیر می شود:
- String
- Integer
- Float (اعداد ممیز شناور - دوبل نیز نامیده می شود)
- Boolean
- Array
- Object
- NULL
- Resource
$x = 10; // $x یک عدد صحیح است
$y = "متغیر"; // $y یک رشته است
echo $x;
echo $y;
دریافت نوع داده
برای دریافت نوع داده یک متغیر از تابع ()var_dump استفاده می شود.
$x = 10;
var_dump($x);
var_dump(10);
var_dump("متغیر");
var_dump(3.14);
var_dump(true);
var_dump([4, 8, 68]);
var_dump(NULL);
رشته اختصاصی برای یک متغیر
اختصاص دادن یک رشته به متغیر با نام متغیر سپس علامت مساوی و رشته مربوطه انجام می شود.
$x = "متغیر";
echo $x;
نکته: متغیرهای رشته ای را می توان با استفاده از کوتیشن (' ') یا دابل کوتیشن (" ") مشخص کرد اما بهتر است از تفاوت آنها آگاه باشید. در این باره فصل رشته های php را مطالعه کنید.
تعیین مقادیر چندگانه
در php می توانید یک مقدار را به چندین متغیر در یک خط اختصاص دهید.
$x = $y = $c = $z = "کتاب";
دامنه (محدوده) متغیرهای php
در زبان php می توان متغیرها را در هر نقطه از اسکریپت اعلام کرد.
دامنه متغیر بخشی از اسکریپت است که در آن متغیر می تواند انتقال یا استفاده شود .
PHP شامل سه محدوده متفاوت است :
- local
- global
- static
دامنه سراسری و محلی
در php متغیری که خارج از یک تابع اعلام شده است دارای یک دامنه سراسری (global) است و فقط خارج از تابع قابل دسترسی است.
$x = 10; // دامنه جهانی
function myTest() {
// استفاده از y در داخل این تابع باعث ایجاد خطا می شود
echo "<p>متغیر y درون تابع است : $y</p>";
}
myTest();
echo "<p>متغیر y خارج از تابع است : $x</p>";
در php متغیری که درون یک تابع اعلام شده است دارای یک دامنه محلی (local) است و فقط درون تابع قابل دسترسی است .
function myTest() {
$x = 10; // دامنه محلی
echo "<p>متغیر y درون تابع است: $x</p>";
}
myTest();
// استفاده از y خارج از این تابع باعث ایجاد خطا می شود
echo "<p> متغیر y خارج از تابع است: $x</p>";
نکته: از آنجایی که متغیرهای محلی فقط توسط تابع اعلان شده خود شناسایی می شوند می توان در توابع مختلف از متغیرهای محلی با نام یکسان استفاده کرد.
PHP کلمه کلیدی global
کلمه کلیدی سراسری (global) برای دسترسی به یک متغیر سراسری از درون یک تابع استفاده می شود.
برای انجام این کار قبل از متغیرها از کلمه کلیدی global درون تابع استفاده کنید
$x = 8;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // خروجی 18
زبان php تمامی متغیرهای سراسری را در آرایه ای به نام GLOBALS[index]$ ذخیره می کند.نقش index نگه داشتن نام متغیر است. این آرایه از درون توابع هم قابلیت دسترسی دارد و می توان از آن برای بروزرسانی مستقیم متغیرهای سراسری استفاده کرد.
$x = 8;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // خروجی 18
php کلمه کلیدی Static
در php زمانی که یک تابع به صورت کامل اجرا می شود تمامی متغیرهای آن حذف می شوند با این اوصاف گاهی اوقات می خواهیم یک متغیر محلی همچنان در جای خود باقی بماند.
برای انجام این کار هنگامی که متغیر را برای اولین بار اعلام می کنید از کلمه کلیدی static استفاده کنید.
توجه کنید هر بار که تابع فراخوانی می شود آن متغیر همچنان اطلاعات آخرین باری که فراخوانی شده بود را به همراه خواهد داشت.
function myTest() {
static $y = 0;
echo $y;
$y++;
}
myTest();
myTest();
myTest();
نکته: متغیر درون تابع همچنان به صورت local می باشد.
خلاصه درس
- در این آموزش با متغیرها و ساختار آنها در php آشنا شدیم.
- آموختیم که php زبانی تایپ آزاد است .
- همچنین درباره دامنه متغیرها نیز اطلاعات کسب کردیم.