محدوده عملکرد متغیرها در PHP

محدود عملکرد متغیرها در PHP
محدود عملکرد متغیرها در PHP

دوره آموزش 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 چقدر آسان هست و چه مزیت‌هایی می‌تواند در کسب‌وکار شما داشته باشد.

فیلم آموزشی asp.net core 2

پوریا آریافر
اولین کسب و کار آنلاین خودم رو در فیسبوک راه‌اندازی کردم، سال ۲۰۱۱ یکی از پرتعامل‌ترین صفحات فارسی با ۸۰ هزار فالور فعال رو داشتم. بعد اینکه فیسبوک خالی از کاربر ایرانی شد وارد دنیای شبکه شدم و در انتهای سال ۲۰۱۲ مدرک MCSE مایکروسافت رو دریافت کردم، در حالی که نمره بالا گرفتم ولی کسی به دلیل به خطر افتادن موقعیت شغلی خودش به عنوان کارآموز منو قبول نمی‌کرد، بعدش با شروع دوران خدمت سربازی، مسئول بهینه سازی یک سایت خبری معتبر شدم و سئو یاد گرفتم. در ابتدای سال ۲۰۱۴ تونستم از رتبه ۱۵۰۰۰ به ۴۰۰ الکسا نزدیک کنم، اون زمان الکسا خیلی مهم بود. وارد دانشگاه شدم، به دلیل عدم علاقه به دانشگاه سعی کردم زودتر تمومش کنم و سه ساله در مقطع کارشناسی IT فارغ التحصیل شدم، توی دانشگاه هر کسی منو میدید یاد سئو میوفتاد، در همون سال آخر دانشگاه بزرگ‌ترین کانال تلگرامی IT با ۴۰ هزار عضو رو داشتم، که به مجتمع فنی فروختم تا بتونم تمرکز رو فقط بر روی عشق خودم یعنی سئو بذارم، وقتی کانال تلگرام فروختم حس پرواز بهم دست داد، هرچند درآمد چندین میلیون ماهانه رو از دست دادم ولی دوباره باید مثل گذشته با پوستی نو یک فصلی نو رو میساختم. در این چندین سال فعالیت‌های سئو به شکل تخصصی بنده در قالب پروژه‌های مختلف و آموزش‌های حضوری و غیرحضوری در دفتر میزفا و دانشگاه علامه طباطبایی تهران صورت ‌گرفته، تجربه بهینه سازی موفقی در بهبود UX و CRO پروژه‌های سئو کسب کردم. در اکثر ابزارهای کاربردی گوگل تسلط کاملی دارم. عاشق کسب تجربه های جدید هستم. راز پیشرفت در هر کاری رو یادگیری و یاددادن می‌دونم و میزفا که در اواخر ۲۰۱۶ راه‌اندازی شد تونست چنین بستر مناسبی رو برام فراهم کنه. همینطور در حال حاضر مدیریت یک تیم ۱۰ نفری از جوانان فعال و پرانگیزه رو در میزفا به عهده دارم. نقد و بازخوردهای سازنده شما، جوهر تلاش‌های مستمر ماست تا یک قدم خودمون بهبود بدیم. منتظریم …

فیلم آموزشی asp.net core 2

2 نظر

2 پاسخ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

حداکثر حجم فایل برای آپلود: 1 مگابایت. فایل‌های مجاز برای آپلود: عکس, ویس, ویدیو, ورد یا پی دی اف, فایل متنی, زیپ. شما می‌تونید برای بهتر پرسیدن سوالتون، عکس یا ویس یا حتی فیلم در بخش نظرات میزفا آپلود کنید. برای ضبط ویس می‌تونید از خود واتس آپ استفاده کنید و بعد اینجا آپلود کنید و برای ارسال عکس هم کافی هست اسکرین شات بگیرید. Drop file here

با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
فیلم آموزشی asp.net core 2
ترک میزفا خوب نیست!
معرفی جامع‌ترین ابزار سئو در ایران
بالای ۱۰ هزار عضو
PHZpZGVvIHdpZHRoPSI2MDAiIGhlaWdodD0iMzUwIiBwb3N0ZXI9Imh0dHBzOi8vbWl6ZmEuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDUvcG9zdGVyLW1pemZhLXRvb2xzLXZpZGVvLW1pbi5wbmciIGNvbnRyb2xzIHByZWxvYWQ9Im5vbmUiPiANCiAgIDxzb3VyY2Ugc3JjPSJodHRwczovL21pemZhLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA1L21pemZhX3Rvb2xzXzcyMHAubXA0IiB0eXBlPSJ2aWRlby9tcDQiPg0KPC92aWRlbz4=