سری آموزش های برنامه نویسی و طراحی صفحات وب سایت گروه نرم افزاری دهکده
متغیر ها ( Variables ) درphp5
متغیر ها به انگلیسی:(Variables) نگه دارنده اطلاعات بطور موقت هستند آنها می توانند حروف، اعداد یا داده های مرکب باشند.متغیر ها " ظروفی " برای ذخیره سازی اطلاعات هستند . برای تعریف متغییر در php نیازی به تعریف نوع متغییر نیست و نوع آن در زمان اجرا و در موقع گرفتن مقدار تعیین می شود ، که ان قابلیت بسیار مفید می باشد و کار ما را ساده تر می کند. در زیر می توانید تعریف متغییر را در پی اچ پی نگاه کنید .
مثال
<?php $x=5; $y=6; $z=$x+$y; echo $z; ?>
کار با متغیرها بسیار شبیه به جبر و ریاضی است و ساده می باشد :
x = 5
y = 6
z = X + Y
در ریاضی ما با استفاده از حروف (مثلا X ) مقدارها را نگهداری میکنیم مثل x = 5
با بیان z = X + Y در بالا، ما می توانیم مقدار جمع X+Y را محاسبه کنیم و در متغییر Z ذخیره نماییم ( نتیجه Z=18 )
متغیرهای PHP
مانند ریاضی، ما میتوانیم از متغیر های PHP برای نگهداری مقادیر و داده ها استفاده نماییم . (x = 5) و یا عبارات (z = X + Y).
یک متغیر می تواند یک نام کوتاه مانند x و yو یا نامی بهتر مثل(age, carname, total_volume) داشته باشد.
قوانین نامگذاری متغیرهای PHP :
- برای تعریف یک متغیر از علامت $ در قبل از آن و سپس نام متغیر بعد از آن می آید . مثل $name
- نام یک متغیر باید با حرف یا خط زیر شروع شود
- نام یک متغیر نمیتواند با عدد شروع شود
- نام یک متغیر تنها می تواند از نویسه های حرفی عددی و خط تشکیل شود(A-z, 0-9, and _ )
- نام متغیر ها به حروف بزرگ و کوچک حساس است (case sensitive ) مثلا ( $ yو$ Y )دو متغیر متفاوت هستند
ایجاد یا ( اعلان ) یک متغیر درPHP
PHPهیچ دستور خاصی برای تعریف یک متغیر ندارد.
یک متغیر لحظه ای که برای اولین بار به آن یک مقدار اختصاص دهید ایجاد می شود :
مثال
<?php $txt="Hello world!"; $x=5; $y=10.5; echo $txt; echo "<br>"; echo $x; echo "<br>"; echo $y; ?>
پس از اجرای دستورات بالا، مقدار متغیر txt مساوی "Hello world!" خواهد بود همچنین مقدار متغیر X 5خواهد شد و مقدار متغیر y 10.5 .خواهد شد .
توجه: هنگام اختصاص مقداری از نوع متنی به یک متغیر ، متن را در علامت نقل قول ( "" )قرار می دهیم مثل مقدار دهی به متغییر txt
PHP یک زبان بی قاعده است.
در مثال بالا، توجه کنید که ما مجبور نیستم نوع داده ای را مشخص نماییم . PHP به طور خودکار نوع داده ای متغیر را با توجه به نوع داده صحیح یا اعشاری، بسته به مقدار اختصاص داده شده به آن تبدیل می کند.
در زبان های دیگر برنامه نویسی مانند C، C++، و جاوا، برنامه نویس باید نام و نوع متغیر مورد نیاز را قبل از استفاده از آن اعلام کند.
محدوده ( میدان دید ) متغیر ها در PHP
اصطلاح میدان دید ( scope ) به بخش هائی از اسکریپت اشاره می کند که در آنها یک متغیر خاص قابل رویت است.
در PHP، متغیرهای را می توان در هر نقطه ازاسکریپت و برنامه اعلام ( تعریف ) کرد.
PHP دارای سه حوزه میدان دید مختلف برای متغیر ها میباشد:
- محلی ( local )
- جهانی ( global )
- ایستا ( static )
شش قاعده کلی در مورد میدان دید PHP عبارتند از :
- متغیر های فراجهانی داخلی در هر جای اسکریپت قابل رویت هستند.
- ثابت ها، پس از تعریف شدن، در سرتاسر اسکریپت قابل رویت هستند.
- متغیر های جهانی (global) که در یک اسکریپت تعریف شده اند فقط در همان اسکریپت دیده می شوند و امکان رویت آنها در داخل توابع وجود ندارد.
- متغیر هایی که درون توابع به صورت جهانی تعریف می شوند، به متغیر های جهانی با همان نام اشاره می کنند.
- متغیر هایی که درون توابع و به صورت ایستا تعریف می شوند را نمی توان از خارج از تابع مشاهده کرد. اما مقدار خود را بین اجرای یک تابع و اجرای بعدی حفظ می کنند(در آینده به طور کامل بررسی می کنیم).
- متغیرهایی که درون تابع بوجود می آیند به آن تابع تعلق دارند و با اتمام فعالیت تابع از بین می روند.
در مثال زیر متغیرهای با دامنه دید محلی و جهانی را بررسی می کنیم :
مثال
<?php $x=5; // global scope Function myTest() { $y=10; // local scope echo "<p>Test variables inside the function:</p>"; echo "Variable x is: $x"; echo "<br>"; echo "Variable y is: $y"; } myTest(); echo "<p>Test variables outside the function:</p>"; echo "Variable x is: $x"; echo "<br>"; echo "Variable y is: $y"; ?>
در مثال بالا دو متغیر $ x و $ Y و تابع myTest() وجود دارند. $X یک متغیر جهانی است ( که در خارج از تابع قابل دیدن است ) و $Y یک متغیر محلی در تابع است که در داخل تابع ایجاد شده است قابل دیدن است.
هنگامی که ما در داخل تابع myTest () از مقادیر این دو متغیر خروجی میگیریم ، $yکه به صورت محلی اعلام کرده ایم قابل نمایش است ، اما مقدار $X قابل چاپ نیست چون در خارج از تابع ایجاد و مقدار دهی شده است.
سپس، ما خارج از محدوده تابع myTest () از مقادیر این دو متغیر خروجی میگیریم ، متغییر $x دارای مقدار ، اما مقدار متغییر $ y در خارج از تابع قابل چاپ نیست ( چون آن یک متغیر محلی است و آن را در داخل myTest ایجاد و مقدار دهی کرده ایم ( .
یادداشت : شما می توانید متغیرهای محلی با نام های یکسان را در کارکردهای مختلف و در توابع مختلف ایجاد کنیم ، زیرا متغیرهای محلی فقط توسط تابع که در آن اعلام کرد شناخته شده است.
کلید واژه (global ) در PHP
از کلمه کلیدی (global ) برای دسترسی به یک متغیر جهانی از درون یک تابع استفاده می شود.
برای این کار، کلمه کلیدی (global ) قبل از استفاده از متغیرها به کار میبریم ( در داخل تابع ) :
مثال
<?php $x=5; $y=10; function myTest() { global $x,$y; $y=$x+$y; } myTest(); echo $y; // outputs 15 ?>
PHP همچنین تمام متغیر هایی با میدان دید جهانی را در یک آرایه با نام $GLOBALS[index] قرار میدهد و قابل استفاده می باشد . منظور از index نام متغیر است . این آرایه نیز از درون توابع قابل دسترسی است و می تواند برای به روز رسانی متغیرها به طور مستقیم مورد استفاده قرار گیرد.
مثال بالا را می توان شبیه به این بازنویسی :
مثال
<?php $x=5; $y=10; function myTest() { $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y']; } myTest(); echo $y; // outputs 15 ?>
کلمه کلیدیstatic در PHP
به طور معمول، زمانی که یک تابع به اتمام است ، تمام متغیرهای آن حذف می شوند. با این حال، گاهی اوقات ما می خواهیم یک متغیر محلی بعد از پایان اجرای تابع حذف نشود و مقدار خود را تا نوبت بعد اجرای تابع حفظ نماید. ما به این قابلیت برای انجام بعضی از کارها نیاز پیدا می کنیم .
برای این کار، از کلمه کلیدی static قبل از اعلان متغیر استفاده می نماییم :
مثال
<?php function myTest() { static $x=0; echo $x; $x++; } myTest(); myTest(); myTest(); ?>
پس از آن، هر بار که تابع فراخوانی می شود ، متغیر هنوز مقدار خود را از آخرین باری که تابع فراخوانی شده است حفظ کرده .
منبع : www.w3schools.com
پایان درس متغیر ها” Variables” در php5