۱۳۸۵/۰۵/۰۶

ثابت ها، میدان دید و آرایه های فرا جهانی در PHP

«بحث امروز گذری در ثابت ها، میدان دید متغیر و آرایه های فراجهانی می باشد»

ثابت ها
همان طور که در مطلب قبلی ذکر شد، مقادیر ذخیره شده در متغیر ها را می توانید تغییر دهید. همچنین می توانید ثابت ها (constant) را تعریف کنید. ثابت مقداری را در خود ذخیره می کند اما امکان تغییر دادن این مقدار وجود ندارد. مثلاً ممکن است آدرس دایرکتوری تعدادی از فایل ها را به صورت ثابت ذخیره کنید. این کار از تکرار کردن آدرس جلوگیری کرده و از حجم برنامه می کاهد.
تعریف ثابت با استفاده از دستور define انجام می شود:


define('MYDIRECTORY', '/personal/');


اگر این خط به به اسکریپت اضافه کنیم، یک ثابت دربردارنده آدرس پوشه personal داریم که در دایرکتوری روت قرار گرفته است. نام ثابت ها را با حروف بزرگ می نویسند تا از متغیر ها تفکیک شوند. تبعیت از این قرارداد الزامی نیست اما با تبعیت از آن کدها خواناتر می شوند.
تفاوت دیگر ثابت و متغیر در این است که در کنار ثابت از علامت $ استفاده نمی شود. اگر بخواهید از مقدار یک ثابت استفاده کنید کافی است تا نام آن را بکار گیرید. مثلاً برای استفاده از ثابت بالا کافی است بنویسید:


echo MYDIRECTORY;


برای مرور و مشاهده ثابت ها و متغیر هایی که از قبل تعریف شده اند از ()phpinfo استفاده می شود:


phpinfo();


این تابع اطلاعات مروبط به ثابت ها و متغیر ها و نیز اطلاعات مفید دیگری را ارائه می کند.
تفاوت دیگر ثابت و متغیر در نوع داده هائی است که می توانند ذخیره کنند. ثابت ها تنها می توانند داده های رشته ای، اعشاری، بولی و عدد صحیح را ذخیره کنند.

میدان دید متغیر

اصطلاح میدان دید (scope) به بخش هائی از اسکریپت اشاره می کند که در آنها یک متغیر خاص قابل رویت است. شش قاعده کلی در مورد میدان دید PHP عبارتند از:

  1. متغیر های فراجهانی داخلی در هر جای اسکریپت قابل رویت هستند.

  2. ثابت ها، پس از تعریف شدن، در سرتاسر اسکریپت قابل رویت هستند.

  3. متغیر های جهانی (global) که در یک اسکریپت تعریف شده اند فقط در همان اسکریپت دیده می شوند و امکان رویت آنها در داخل توابع وجود ندارد.

  4. متغیر هایی که درون توابع به صورت جهانی تعریف می شوند، به متغیر های جهانی با همان نام اشاره می کنند.

  5. متغیر هایی که درون توابع و به صورت ایستا تعریف می شوند را نمی توان از خارج از تابع مشاهده کرد. اما مقدار خود را بین اجرای یک تابع و اجرای بعدی حفظ می کنند(در آینده به طور کامل بررسی می کنیم).

  6. متغیرهایی که درون تابع بوجود می آیند به آن تابع تعلق دارند و با اتمام فعالیت تابع از بین می روند.



آرایه های فرا جهانی
از نسخه 4.1 PHP به بعد، آرایه های GET_$ و POST_$ و برخی متغیر های خاص از قوانین میدان دید خاصی استفاده می کنند. این آرایه ها و متغیر ها را فراجهانی (superglobal) می نامند و در درون و برون توابع دیده می شوند.
لیست کامل آرایه های فراجهانی عبارتست از:

  • GLOBALS$ آرایه ای از متغیر های جهانی که امکان دسترسی به متغیر های جهانی درون یک تابع را فراهم می کند.

  • GET$ آرایه ای از متغیرهاست که توسط روش GET به اسکریپت فرستاده شده اند.

  • POST$ آرایه ای از متغیرهاست که توسط روش POST به اسکریپت فرستاده شده اند.

  • COOKIE$ آرایه ای از متغیر های cookie.

  • FILES$ آرایه ای از متغیر های مربوط به ارسال (upload) فایل.

  • REQUEST$ آرایه ای از همه ی ورودی های کاربر که محتویات ورودیها مانند GET$ ، POST$ و COOKIE$ را شامل می شود.

  • SESSION$ آرایه ای از متغیر های نشست (session).

۵ نظر:

  1. سلام. شما می تونید در زمینه دلفی بهم کمک کنید؟ چند تا سئوال داشتم.

    پاسخحذف
  2. از سایت خوب ومفید شما لذت بردم لطفا مرا در مورد مباحث متغیر های خاص وتوابع تاریخ وزمان در php راهنمایی کنید.
    با تشکر

    پاسخحذف
  3. لطفا یک سورس نمایش تعداد افراد آنلاین به من نشون میدید که خوب کار کنه ؟

    خیلی ممنون.

    پاسخحذف
  4. کتاب انتشارات نص رو دقیقاً کپی پیست میکنید اینجا؟!!

    پاسخحذف
  5. تاریخ انتشار و نام کتاب انتشارات نص رو لطفا اعلام کنین.
    مطمئنین که این انتشارات مثل خیلی های دیگه مطالب کتابهاش رو از وبلاگ من و سایر دوستان فنی کپی نکرده؟!

    پاسخحذف