جلسه نهم PHP : متغیر های از پیش تعریف شده + مرتب کردن آرایه‌ها

خانه » مقالات اموزشی » php » جلسه نهم PHP : متغیر های از پیش تعریف شده + مرتب کردن آرایه‌ها
جلسه نهم PHP

نویسنده:

سجاد حسین زاده

Statistics-rafiki

تعداد بازدید:

14578

Calendar-amico (2)

تاریخ به‌روزرسانی:

۱۴۰۰-۰۹-۱۱

Work time-rafiki

زمان مطالعه:

12 دقیقه

جلسه نهم PHP : آموزش کامل زبان برنامه نویسی پی اچ پی مقدماتی تا پیشرفته

مقدمه

در این مقاله از آموزش PHP با جلسه نهم PHP در خدمت شما هستیم. در قسمت قبل در جلسه هشتم PHP بحث توابع درPHP را پیش بردیم. که موضوعاتی نظیر سینتکس توابع، تفاوت پارامتر و آرگومان در توابع، بررسی عبارت return در تابع و همچنین دستورات include و require بررسی شد. اما در جلسه نهم PHP قصد داریم تا مبحثی که در جلسه چهارم PHP تحت عنوان آرایه‌ها مطرح شد را کمی گسترش دهیم. فهرست مطالب زیر در این جلسه بررسی خواهند شد.

  1. مرتب کردن آرایه‌ها
  2. متغیرهای سوپر گلوبال
    2.1. متغیر SERVER_$
    2.2. متغیر GLOBALS_$

مرتب کردن آرایه ها در PHP

همیشه راهی برای مرتب‌سازی وجود دارد. مقادیر یک آرایه را می‌توان به‌صورت الفبایی و یا اعداد از کوچک به بزرگ و یا بالعکس مرتب‌سازی نمود. در لیست زیر از جلسه نهم PHP توابعی برای مرتب کردن آرایه‌ها وجود دارد.

  • ()sort: آرایه‌ها را با روند افرایشی مرتب می‌کند.
  • ()rsort: آرایه‌ها را با روند کاهشی مرتب می‌کند.
  • ()asort: آرایه‌های متناظر را با روند افزایشی و بر اساس ارزش آن‌ها مرتب می‌کند.
  • ()ksort: آرایه‌های متناظر را با روند افزایشی و بر اساس کلید آن‌ها مرتب می‌کند.
  • ()arsort: آرایه‌های متناظر را با روند کاهشی و بر اساس ارزش آن‌ها مرتب می‌کند.
  • ()krsort: آرایه‌های متناظر را با روند کاهشی و بر اساس کلید آن‌ها مرتب می‌کند.

طرز کار همه‌ی این توابع همانند هم می‌باشند. به‌اختصار از ()sort مثالی می‌آوریم.

تابع () sort در PHP

مثال زیر از جلسه نهم PHP را بررسی کنید.

نکته 1: مشاهده می‌کنید که در خروجی از مثال بالا، چینش عناصر آرایه مرتب شدند.

متغیرهای superglobal در PHP

این نوع از متغیرها اولین بار در نسخه 4.1 PHP ارائه شدند. متغیر‌های superglobal صرف‌نظر از این‌که کجای برنامه از آن‌ها استفاده می‌شود، همیشه دردسترس هستند. مبحث محدوده‌ی متغیرها در PHP را به خاطر بیاورید. قبلا دراین‌مورد صحبت شده بود. محدوده‌ی متغیرها برای superglobal ها معنا ندارد.
در زیر، لیست ِ superglobal های PHP را مشاهده می‌کنید.

  • GLOBALS$
  • SERVER_$
  • REQUEST_$
  • POST_$
  • GET_$
  • FILES_$
  • ENV_$
  • COOKIE_$
  • SESSION_$

در ادامه جلسه نهم PHP‌ برخی از این متغیرهای از پیش‌تعریف‌شده را بررسی می‌کنیم.

متغیر SERVER_$ در PHP

SERVER_$ نیز یکی از متغیرهای سراسری در PHP است که نگهدارنده اطلاعاتی در مورد سربرگ ،مسیرها، و مکان اسکریپت میباشد. ورودی‌های این آرایه توسط وب سرور ایجاد می‌شوند. برای مثال SERVER[‘SCRIPT_NAME’]_$ مسیر فایل PHP شما را نمایش می‌دهد.

مثال زیر از جلسه نهم PHP ، روش استفاده از سوپرگلوبال SERVER_$ را نشان می‌دهد:

خروجی کد بالا:

SERVER superglobal in PHP
SERVER superglobal in PHP

نکته 1 : از “\t” برای ایجاد tab استفاده میکنیم.
نکته 2: تگ pre برای نمایش بهتر، استفاده می‌شود. یک‌بار بدون آن تست کنید.
نکته 3: تمامی موارد بالا در جدول زیر توضیح داده‌شده‌اند.

توضیحاتکد
مشخصات مرورگر را بر‌ می‌گرداند. SERVER[‘HTTP_USER_AGENT’]_$
نام فایل شما که اسکریپت در حال اجرا روی آن است را نمایش می‌دهد. SERVER[‘PHP_SELF’]_$
مسیر اسکریپت جاری را در خروجی برمی‌گرداند.SERVER[‘SCRIPT_NAME’]_$
نام سرور میزبان را برمی‌گرداند. SERVER[‘SERVER_NAME’]_$
با توجه به درخواست جاری، سربرگ هاست را برمی‌گرداند. احتمالاً برای شما مقدار localhots نمایش داده می‌شود. من در سیستم شخصی خودم این مورد را تغییر داده‌ام. SERVER[‘HTTP_HOST’]_$
URL کامل صفحه جاری را برمی‌گرداند. SERVER[‘HTTP_REFERER’]_$
آدرس کامل اسکریپتی که در حال اجرا است را برمی‌گرداند. SERVER[‘SCRIPT_FILENAME’]_$
آی‌پی سرور میزبان (host server) را برمی‌گرداند. ازآنجایی‌که شما هم احتمالاً همانند من، روی لوکال هاست کدها را تمرین می‌کنید، IP شما هم مقدار 127.0.0.1 را دارد. SERVER[‘SERVER_ADDR’]_$
آی‌پی کاربر از مکانی که در حال مشاهده‌ی صفحه‌ی شما است را نمایش می‌دهد. که مشخصاً این مورد روی لوکال‌هاست همان مقدار 127.0.0.1 را برمی‌گرداند. SERVER[‘REMOTE_ADDR’]_$
پورتی که در دستگاه کاربر برای اتصال به سرور استفاده‌شده است را نمایش می‌دهد. SERVER[‘REMOTE_PORT’]_$
شماره پورتی را که روی سرور برای ارتباطات وب سرور استفاده می‌شود را برمی‌گرداند. (همانند ۸۰) SERVER[‘SERVER_PORT’]_$
مقدار URI فایل اسکریپت جاری را برمی‌گرداند. SERVER[‘SCRIPT_URI’]_$
نام میزبانی را که کاربر از آن صفحه جاری را می‌بیند را برمی‌گرداند. SERVER[‘REMOTE_HOST’]_$
این دستور URI موجود در را برمی‌گرداند. SERVER[‘REQUEST_URI’]_$
عناصر درون آرایه SERVER_$

نکته1: دستور SERVER[‘REQUEST_URI’]_$ مقدار URI صفحه را برمی‌گرداند.
یعنی اگر آدرس کامل URL ما http://site1.exp/dashbord/profile باشد، مقدار URI ما /dashbord/profile خواهد بود.

مثالی از SERVER[‘REQUEST_URI’]_$

فرض کنید که قرار است برای کاربر یک پنل کاربری طراحی شود. بنابراین وقتی کاربر وارد آدرس /dashbord و یا آدرس /dashbord/profile می‌شود، باید صفحاتی جداگانه برای آن طراحی شود. حال تابعی بنویسید که مقدار URI صفحه را در خروجی چاپ کند.

خروجی کد بالا در آدرس: http://site1.exp/dashbord

SERVER['REQUEST_URI']_$

خروجی کد بالا در آدرس: http://site1.exp/dashbor/profile

SERVER['REQUEST_URI']_$

متغیر GLOBALS$ در PHP

GLOBALS$ یک متغیر Superglobals در PHP است که برای برای دسترسی به متغیرها از هر نقطه در اسکریپت PHP (و نیز از داخل توابع و یامتدها) ، استفاده میشود. PHP همه متغیرهای سراسری را در آرایه ای به نام  [GLOBALS[index $ ذخیره میکند که index نام متغیر رانگهداری میکند.

مثال زیر از جلسه نهم PHP روش استفاده از متغیر سراسری GLOBALS $ را نشان میدهد:

در مثال بالا از جلسه نهم  PHP، از آنجایی که z یکی از متغیرهای داخل آرایه  $GLOBALSمی باشد، در خارج از تابع نیز قابل دسترسی است.

SERVER_$ نیز یکی از متغیرهای سراسری در PHP است که نگهدارنده اطلاعاتی در مورد سربرگ، مسیرها، و مکان اسکریپت میباشد. مثال زیر از جلسه نهم PHP روش استفاده از برخی از عناصر در SERVER_$ را نشان میدهد:

باقی متغیر های superglobal را بعد از مبحث فرم ها به شما آموزش خواهیم داد.

تبریک میگم شما موفق شدید تا جلسه نهم PHP را پشت سر بگذارید. ادامه ی آموزش در روز های آتی قرار خواهد گرفت.

سجاد حسین زاده

سجاد حسین زاده

سجاد حسین زاده هستم متولد کرج, بنده از سال ۹۴ سابقه حضور در حوزه وب را دارم. و روزبه‌روز در حال رشد و ارتقای خودم تو این زمینه هستم. از علایقم که بخوام به گم: خب واضحه که عاشق کدنویسی هستم. و همچنین من از معدود افراد برنامه‌نویس ورزشکار هم به‌حساب میام.

تا کنون 264 نفر در کدپز ثبت نام کرده اند.

1 Comment

Join the discussion and tell us your opinion.

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