سرفصلهای پست
دوره آموزش PHP به زبان ساده – محدوده عملکرد متغیرها در PHP
سلام دوستان برنامه نویس، در ادامه دوره آموزش PHP در خدمت شما هستیم در قسمت قبل به موضوع انواع دادهها در PHP پرداختیم، در این جلسه قصد داریم درباره محدوده عملکرد یک متغیر در پی اچ پی یا دامنه عملکرد متغیرها یا به انگلیسی variables scope صحبت کنیم.متغیرهای PHP میتوانند در هر جایی از اسکریپت نمایان شوند(اسکریپت به مجموعه از کدها گفته میشود). دامنه عملکرد یک متغیر (variable scope) بخشی از اسکریپت است که متغیر در آن به کار میرود و یا به آن ارجاع داده میشود.
دامنه هایی که بیشتر از بقیه در PHP استفاده میشوند عبارت اند از:
- محلی (Local)
- سراسری(Global)
- ایستا (static)
متغیر محلی در PHP چیست؟
به متغیری که درون یک تابع مشخص میشود متغیر محلی یا (local scope) گفته میشود این متغیر فقط درون آن تابع قابل دسترسی است.
متغیر سراسری در PHP چیست؟
به متغیری که خارج از یک تابع (Function) مشخص میشود متغیر سراسری یا (Global scope) گفته میشود این متغیر فقط خارج از یک تابع قابل دسترسی است.
مثال زیر را در نظر بگیرید:
<?php $name = 'pouria'; function getName() { $nametwo = 'ali'; } ?>
متغیر name یک متغیر سراسری (Global scope) است و در تابع getName قابل دسترسی نیست در صورت استفاده از تابع با پیغام خطا مواجه میشویم و فقط در خارج از تابع میتوان از آن استفاده کرد حال برعکس همین موضوع برای متغیر nametwo صدق میکند متغیر nametwo فقط در داخل تابع دسترسی دارد و خارج از آن تابع نمیتوان از آن استفاده کرد.
[box type=”info”] توابع در درسهای آینده مورد بحث قرار خواهند گرفت.[/box]کلمه کلیدی global پیش از نام متغیر چیست؟
کلمه کلیدی گلوبال (global) به منظور دسترسی به یک متغیر global از درون یک تابع به کار میرود به مثال زیر توجه کنید
<?php $name = 'pouria'; function getName() { global $name; $nametwo = 'ali'; } ?>
با استفاده از کلمه کلیدی global میتوانیم به متغیر خارج از تابع دسترسی داشته باشیم و از آن در داخل تابع استفاده کنیم.
static در PHP چیست؟
اگر درون تابع متغیری از نوع Static تعریف کنیم، تنها داخل همان تابع به متغیر مذکور دسترسی خواهیم داشت و آخرین مقدار تنظیم شده برای متغیر از نوع Static حفظ خواهد شد و همیشه به آن دسترسی وجود خواهد داشت.
تصور فرمایید، کاربر شماره 1 وارد برنامه شده و باعث اضافه شدن یک واحد به متغیر Static شود، حالا اگر کاربر شماره 2 وارد برنامه شود، آخرین مقدار متغیر static را مشاهده خواهد کرد و می توند 1 واحد به آن اضافه کند
یک مثال واقعی برای متغیر Static، استفاده از آن برای نمایش آمار تعداد کاربران “میهمان” یا “اعضا” است.
<?php function myFun() { static $var = 0; echo $var; $var++; } myFun(); myFun(); myFun(); ?>
در این مثال لازم نیست شما کامل تابع را درک کنید صرفا مثالی زده شده برای درک static. تابع myFun با هر بار اجرا یک مقدار به متغیر var اضافه میکند ولی اگر کلمه کلیدی static پشت متغیر var نباشد چه میشود؟ تابع myFun هر بار اجرا میشود و مقدار متغیر var را از صفر به یک تغییر میکند ولی دوباره بعد از اتمام تابع متغیر var صفر میشود ولی اگر static قبل متغیر var قرار دهیم اخرین مقدار متغیر نگه داشته میشود و با هر بار اجرا تابع مقدار ان افزایش میابد مثلا در مثال بالا ۳ بار تابع myFun قراخوانی شده و مقدارش از صفر به یک و در نهایت به دو تغیر یافته. هر زمان که تابع صدا زده می شود، آخرین مقدار متغیر static، حفظ می شود.
این جلسه هم به پایان رسید اگر سوالی داشتید حتما در نظرات میزفا مطرح کنید. در این دوره آموزش پی اچ پی با ما همراه باشید و در آینده نزدیک درخواهید یافت که یادگیری PHP چقدر آسان هست و چه مزیتهایی میتواند در کسبوکار شما داشته باشد.
2 پاسخ
خیلی خوب بود! استفاده کردم!
ممنون
1
سلام خوشحالم مورد استفاده شما قرار گرفته.