با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، در جلسه قبل با سینتکس اصلی و چهار چوب کدنویسی php آشنا شدیم، در این جلسه برای شروع کدنویسی به بحث تعریف و بکارگیری متغیرها در php 7 می پردازیم، متغیرها در تمام زبان های برنامه نویسی به عنوان ظرفی برای ذخیره سازی موقت داده ها استفاده می شود، سپس می توانیم از مقادیر متغیرها در بخش های دیگر کد ، طبق نیاز خود استفاده کنیم،متغیرها قابلیت ذخیره و نگهداری انواع مختلف داده ها را دارند، از این رو برای انواع مختلف داده ها نوع های مختلف باید در نظر گرفت که در ادمه ی دوره به انواع داده خواهیم پرداخت. در این بخش دو مبحث مهم چگونگی تعریف متغیرها در php 7 و چگونگی بکارگیری متغیرها در php 7 را مورد بررسی و تحلیل قرار خواهیم داد با ما همراه باشید.
همانطور که می دانیم یکی از مباحثی که در زبان های برنامه نویسی متفاوت است بحث تعریف و بکارگیری متغیرهاست.
از این رو در ادامه به چگونگی تعریف متغیرها در php 7 و چگونگی بکارگیری متغیرها در php 7 پر داخته ایم.
متغیرها در تمام زبان های برنامه نویسی در واقع ظرف هایی برای نگهداری موقت اطلاعات هستند.
در زبان PHP ، متغیرها با علامت اختصاری ” $ ” شروع می شوند، سپس نام متغیر در ادامه می آید:
1 2 3 4 5 | <?php $txt = "Hello world!"; $x = 5; $y = 10.5; ?> |
بعد از اجرای کد فوق ، متغیر $txt
مقدار Hello world!
را نگه می دارد.
متغیر $x
نیز مقدار ۵ را نگه می دارد.
و متغیر $y
مقدار ۱۰٫۵ را نگه می دارد.
نکته : زمانیکه یک مقدار text را به یک متغیر نسبت می دهید ، دو طرف مقدار علامت دابل کوتیشن ” ” قرار دهید.
نکته : برخلاف بسیاری از زبان های برنامه نویسی PHP برای متعریف متغیرها دستوری ندارد ، بلکه در لحظه اختصاص اولین مقدار به متغیر در همان لحظه تعریف می شود.
همیشه متغیرها را به عنوان ظرفی برای نگهداری داده در نظر بگیرید.
در مباحث فوق به طور کلی با چگونگی تعریف متغیرها در php 7 آشنا شدیم.
در ادامه با قوانین و چگونگی بکارگیری متغیرها در php 7 خواهیم پرداخت.
یک متغیر می تواند با یک نام کوتاه (مانند X یا Y) و یا با یک توضیح (مانند age, carname, total_volume) نامگذاری شود.
قوانین متغیرهای PHP :
$
شروع شده و در ادامه نام متغیر می آید.$age
و $AGE
دو متغیر متفاوت هستند).اما به خاطر داشته باشید که نام متغیرها در PHP به بزرگی و کوچیکی حروف حساس است.
در PHP اغلب از دستور echo
برای گرفتن خروجی در صفحه نمایش استفاده می شود.
مثال زیر نشان می دهد که چگونه می توان از مقدار یک متغیر در صفحه نمایش خروجی گرفت:
1 2 3 4 | <?php $txt = "W3Schools.com"; echo "I love $txt!"; ?> |
مثال زیر نیز خروجی مثال فوق را تولید می کند:
1 2 3 4 | <?php $txt = "W3Schools.com"; echo "I love " . $txt . "!"; ?> |
مثال زیر مجموع دو متغیر را در خروجی نمایش می دهد:
1 2 3 4 5 | <?php $x = 5; $y = 4; echo $x + $y; ?> |
نکته : در جلسه بعد بیشتر در مورد دستور echo
و گرفتن خروجی در صفحه نمایش توضیح خواهیم داد.
در مثال های فوق ما به PHP نوع داده ی متغیر ها را نمی گفتیم.
PHP به طور خودکار نوع داده ی متغیرها را نسبت به مقداری که به آن اختصاص می دهیم تعریف می کند.
از آنجایی که انواع داده سختگیرانه تعریف نشده اند، می توان اعمالی نظیر اجتماع یک رشته با نوع عددی را بدون خطا انجام داد.
در PHP 7، نوع اعلامیه ها اضافه شدند.
این یک گزینه برای مشخص کردن نوع داده در زمان تعریف تابع به ما می دهد.
و با فعال کردن حالت strict(سخت گیرانه) در صورت اختصاص نوع داده اشتباه به متغیر ، خطای “Fatal Error” رخ خواهد داد.
البته در جلسات بعدی بیشتر در مورد نوع strict
و non-strict
توضیح خواهیم داد.
در PHP متغیرها را می توان در هر کجای کد تعریف کرد.
محدوده ی متغیرها (scope of a variable) بخشی از اسکریپت کد است، جایی که متغیرها می تواند ارجاع داده شود / استفاده شود.
PHP سه محدوده ی مختلف را برای متغیرها تعریف می کند:
متغیری که خارج از محدوده ی یک تابع تعریف می شود یک متغیر Global بوده و فقط خارج از تابع قابل دسترس است.
1 2 3 4 5 6 7 8 9 10 11 | <?php $x = 5; // global scope function myTest() { // using x inside this function will generate an error echo "<p>Variable x inside function is: $x</p>"; } myTest(); echo "<p>Variable x outside function is: $x</p>"; ?> |
همچنین متغیری که داخل بلوک یک تابع تعریف شود از نوع Local بوده و فقط داخل همان تابع قابل دسترس است.
1 2 3 4 5 6 7 8 9 10 | <?php function myTest() { $x = 5; // local scope echo "<p>Variable x inside function is: $x</p>"; } myTest(); // using x outside the function will generate an error echo "<p>Variable x outside function is: $x</p>"; ?> |
نکته : شما فقط می توانید متغیرهای نوع Local هم نام در توابع مختلف داشته باشید. چراکه متغیرهای Local فقط در همان تابعی که تعریف شده اند شناخته می شوند.
از کلمه کلیدی global برای دسترسی به متغیرهای نوع global در داخل یک تابع استفاده می شود.
برای این منظور کافیست از کلمه کلیدی global قبل از نام متغیرهای مورد نظر استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $x = 5; $y = 10; function myTest() { global $x, $y; $y = $x + $y; } myTest(); echo $y; // outputs 15 ?> |
همچنین PHP تمام متغیرهای نوع global را داخل یک آرایه با نام $GLOBALS[index]
ذخیره می کند، که index
نام متغیر را نگه می دارد.
همچنین این آرایه در داخل توابع قابل دسترسی بوده و می تواند برای بروزرسانی متغیرهای global به صورت مستقیم استفاده شود.
مثال فوق را می توان به صورت زیر نوشت:
1 2 3 4 5 6 7 8 9 10 11 | <?php $x = 5; $y = 10; function myTest() { $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y']; } myTest(); echo $y; // outputs 15 ?> |
معمولا وقتیکه یک تابع به صورت کامل اجرا شود تمام متغیرهای آن پاک می شوند.
اما گاهی اوقات نیاز داریم که متغیرهای محلی پاک نشوند ، ما از آن ها برای کارهای آینده نیاز داریم:
1 2 3 4 5 6 7 8 9 10 11 | <?php function myTest() { static $x = 0; echo $x; $x++; } myTest(); myTest(); myTest(); ?> |
سپس هر زمان که تابع فوق را فراخوانی کنیم ، متغیرهای داخل آن هنوز شامل مقادیر آخرین باری که تابع فراخوانی شده می باشند.
نکته : اما توجه داشته باشید که متغیرها داخل تابع فوق هنوز از نوع محلی می باشند.
مباحث تعریف متغیرها در php 7 و چگونگی بکارگیری متغیرها در php 7 به پایان رسید.
متغیرها بخشی از ساختمان داده ی اصلی و پرکاربرد در تمام زبان های برنامه نویسی می باشند، از آنجایی که معمولا تعریف و بکارگیری متغیرها در زبان های مختلف متفاوت است، این مبحث را به بررسی چگونگی تعریف و بکارگیری متغیرها در php 7 اختصاص دادیم.