بخش پیشرفته آموزش پی اچ پی (PHP) از جلسه هفدهم این مجموعه در سایت آموزشی کدیاد آغاز میشود. در جلسه پیشین پیرامون متغیرهای اسکوپ به عنوان آخرین مبحث از جلسات آموزشPHP صحبت شد. گفتیم که متغیرهای پی اچ پی به سه قسم گلوبال Global، لوکال Local و استاتیک Static تفکیک شدهاند. در این جلسه به صورت مبسوط در مورد دیتابیس، شی گرایی و متغیرهای سوپرگلوبال صحبت میکنیم. با ما همراه باشید تا به همراه یکدیگر دوره آموزش پیشرفته آموزش پی اچ پی به زبان ساده را ادامه دهیم.
مفاهیم SuperGlobal در زبان PHP
در این بخش از آموزش پی اچ پی رایگان، می خواهیم با متغیرهای سوپرگلوبال آشنا شده و نحوه بهکارگیری آنان را آموزش دهیم. متغیرهای گلوبالیسیته در واقع مشکل شناخت متغیرها در کل برنامه و خارج از محدوده تعریف شده را حل میکنند. در ابتدا توضیح مختصری پیرامون دادههای سراسری یا گلوبال در این جلسة آموزش پی اچ پی (PHP) داده میشود. پس از آن به سراغ بررسی خانواده متغیرهای Global Super میرویم.
در ابتدای کار قصد داریم تا توضیح کوتاهی در مورد متغیرهای سراسری یا همان متغیرهای گلوبال در PHP بدهیم. پس از آن میخواهیم به سراغ متغیرهای $_GLOBALS و $_GET و $_POST و $_REQUEST برویم و با آنها آشنا به صورت کامل آشنا شویم. آرایههای سراسری در آموزش پی اچ پی با کمک تمرینهای اورجینال موجود در سایت php بررسی شده و تمرین میشوند؛ بنابراین بهترین منبع برای آموزش این مبحث سایت کدیاد و سایت اصلی پی اچ پی است.
انواع متغیرهای سوپرگلوبال در php
متغیرهای SuperGlobal
متغیرهای سراسری در هر قسمت از برنامه، کدنویسی و یا فایلی بیاید، امکان دسترسی کاربر به آن متغیر را در همه جای برنامه میدهند. کاربر قادر است هر داده را با نام متغیر کلیدی گلوبال در جلوی آن به شکل سراسری تبدیل کرده و از آن در کل برنامه استفاده کند. بدین ترتیب هر متغیر گلوبال را میتوان در هر کجای برنامه صدازنی کرده و از آن استفاده کرد. دوره آموزش برنامه نویسی PHPبه این موضوع پرداخته است که با تعریف متغیر به صورت سراسری، از آنها بتوان خارج از ناحیه یا اسکوپ مربوطه نیز استفاده کرد.
در آموزش پی اچ پی (PHP) یاد گرفتهایم این زبان خود دارای متغیرهای گلوبال از پیش تعریف شدهای نیز است. این دیتاها را با نام سوپرگلوبال میشناسند. دیتاها با استفاده از متغیرهای سوپر گلوبال و زبان برنامهنویسی PHP یک سری از تنظیمات و مقادیر مهمی را که از سمت وب سرور دریافت میکند، در اختیار برنامه نویس قرار می دهد. در ادامه این جلسه به بررسی جزئیتر متغیرهای گلوبال و سوپرگلوبال میپردازیم.
پارامترهای گلوبال Global
نقطه مقابل متغیرهای لوکال یا محلی، پارامترهای گلوبال هستند. با این تعریف در حوزة لوکال، متغیرها صرفا در محدودة مشخصی کار کرده و نمیتوان از آنها در کل برنامه استفاده کرد. در واقع پارامتر لوکال قابلیت صدازنی در کل برنامه نوشته شده را ندارد. همانطور که در جلسه آموزش پی اچ پی به زبان ساده گفته شد پارامترهای گلوبال را میتوان در تمامی قسمتهای برنامه بازی داده و از آنها بهره برد.
این پارامترها امکان کارکرد در هر قسمت از کد را داشته و قلمروی مشخص ندارند. به عبارت بهتر از آنها میتوان در توابع گوناگون و جهت بازگشت دیتاهای مورد نظر استفاده کرد. تنها کافیست پیش از تعریف پارامتر مربوطه، یک عدد متغیر با پیشوند global به نام آن اضافه شود.
متغیرهای سراسری گلوبال و سوپر گلوبال
پارامترهای SuperGlobals
در خلال جلسة آموزش پی اچ پی (PHP) به این نکته اشاره شد که سوپرگلوبالها از جمله پارامترهایی هستند که از ورژن چهارم به بعد زبان برنامهنویسی پی اچ پی وارد فضای کدنویسی و امکانات آن شدهاند. سوپرگلوبالها پارامترهایی داخلی بوده و توانایی کاربری در کلیه نواحی، اسکوپها و سایر توابع کدنویسی برنامه را دارند.
دوره آموزش برنامه نویسی PHPبه برنامهنویسان مبتدی میآموزد که که برای استفاده بهینه از این پارامترها نیازی به جایگاه محدودی نداشته و میتوانند در هر تابع، فایل یا کلاس تعریف شدهای به آنها دسترسی داشته باشند.
از جمله متغیرهای سوپرگلوبالی که در آموزش پی اچ پی رایگان به آنها پرداخت شده است، پارامترهای سراسری $_REQUEST، $_GLOBALS، $_POST، $_SERVER، $_SESSION، $_COOKIE، $_FILES، $_ENV و $_GET هستند. در این دوره از آموزش PHP به تعریف برخی از آنها میپردازیم.
متغیر $_GLOBALS در PHP
اولین، اصلیترین و مهمترین متغیر به کار گرفته شده در زبان برنامهنویسی پی اچ پی، با نام $_GLOBALS شناخته میشود. این متغیر را میتوان در تابع var_dump صدازنی کرده و نتیجة آن را در خروجی مشاهده کرد. متغیر فوق سراسری گلوبال، در واقع آرایهای متشکل از کلیه پارامترهای سوپرگلوبال است که در آموزش پی اچ پی به تعریف و استفاده از آنها تاکید شده است. سایر متغیرهایی که در ادامه این مبحث تعریف میشوند، جزئی از همین متغیر و عنصری از آرایه سوپرگلوبال به حساب میآیند.
با کمک این پارامتر امکان دستیابی به متغیرهای گوناگون وجود خواهد داشت. به عبارت بهتر، هر پارامتری که در طول اجرای برنامه تعریف شده یا صدازنی گردد، در سوپر متغیر گلوبال قابل دستیابی است. در آموزش PHPپیشرفتهتر به برنامهنویسان گفته میشود که اقدام به اسکریپتنویسی کرده و از این پارامتر به شکلی فزاینده و کاربردیتر استفاده شود. به عنوان مثال به هنگام تعریف و کال کردن پارامتر CustmerName، از دو روش میتوان استفاده کرد:
- صدازنی اسم خود متغیر
- استفاده از متغیر سراسری گلوبال به شکل $_GLOBALS[‘CustmerName’]
مثال کاربردی پیرامون نحوة استفاده از متغیر $_GLOBALS
ویژگیهای متغیر سراسری $GLOBALS
از آنجایی که $GLOBALSمتغیری فوق سراسری محسوب میشود، جهت دسترسی به سایر پارامترهای گلوبال مورد توجه قرار میگیرد. خروجی این متغیر بسیار وسیع بوده و قابل مشاهده است. امکان دسترسی به متغیرهای سوپرگلوبال از تمامی قسمت های مختلف کدنویسی و اسکریپتهای موجود در برنامه وجود دارد. این قابلیت در آموزش پی اچ پی (PHP) بیان شده و از آنها میتوان در کلیة متدها، توابع کوچک و بزرگ و اسکریپتها استفاده کرد.
این آرایه به شکلی فوقالعاده مجموعه پارامترهای مورد نیاز را در خود نگهداری کرده و با نام ایندکس متغیر، به کاربر توانایی دسترسی به پارامتر مربوطه را میدهد. در واقع این شاخص نام پارامتر را با خود به همراه داشته و دست برنامهنویس و کدزن را در خلال کار باز میگذارد. کلیه متغیرهای public آورده شده در دورههای زبان برنامهنویسی پی اچ پی در index تعریف شده و خود قابلیت call یا صدازنی در هر کجای برنامه را دارند. در ادامه به نمونه مثالی میپردازیم که نحوة استفاده از این متغیر را به خوبی نمایش میدهد:
قابلیت صدازنی متغیر موجود در آرایه گلوبال $GLOBALS خارج از تابع
پارامتر $_SERVER در PHP
$_SERVER نیز یکی دیگر از پارامترهای پرکاربرد است که در آموزش پی اچ پی (PHP) معرفی شده و کلیه اطلاعات در مورد مسیرها، عناوین و محل قرارگیری در نقاط مختلف برنامه را در بر دارد. در این متغیر سوپرگلوبال، مجموعهای از عناصر کاربردی وجود دارند که بر حسب نیاز برنامهنویس قابل صدازنی و پیگیری هستند. در لیست زیر مجموعه عناصر مورد استفاده را خواهید دید:
مجموعه عناصر مورد استفاده در متغیر $_SERVER
عناصر کاربردی در پارامتر سوپرگلوبال $_SERVER
در ادامه مباحث آموزش پی اچ پی (PHP) مهمترین عناصری را که میتوان در متغیر سراسری $_SERVER ذخیره و استفاده کرد را با یکدیگر مرور میکنیم:
برای ردیابی اطلاعات IP و شماره و نام پلتفرم یا دستگاه مورد نظر میتوان از این متغیر بهره برد. همچنین برای گرفتن اطلاعات دقیقتر پیرامون آدرس صفحات، نام کاربری، یوزر فعال و سایر دادههایی از این دست نیز میتوان با دستوراتی که شامل متغیر $_SERVER میشوند، به دادهکاوی پرداخت.
از جمله این دستورات، دستیابی به آی پی کاربری شخصی افراد است که با دستور
echo $_SERVER['REMOTE_ADDR'];
قابل مشاهده است یا جهت ردیابی دستگاههای کامپیوتری مختلف و پیگیری ورودی کاربران میشود از دستور
echo $_SERVER['HTTP_USER_AGENT'];
استفاده کرد.
دستورات متنوع با استفاده از پارامتر سوپرگلوبال $_SERVER
طبق آنچه در آموزش پی اچ پی (PHP) در جلسات تخصصی بیان میشود با کمک این متغیر میتوان به تعداد قابل توجهی اطلاعات دستیابی پیدا کرد. هر کدام از این دستورات نیازمند دقت و تمرین فوقالعاده در قالب تمرینات متعدد است. در ادامه به معرفی و بررسی برخی از آنها میپردازیم.
-
$_SERVER['PHP_SELF']
با استفاده از این دستور میتوانید نام فایل اسکریپتی که در حال اجرا است را بر گردانده و به آن دسترسی پیدا کنید.
-
$_SERVER['GATEWAY_INTERFACE']
این دستور قادر است که نسخه (CGI) مورد استفاده سرور را برگرداند.
-
$_SERVER['SERVER_ADDR']
با این آدرس IP سرور میزبان شناسایی شده و به نمایش در خواهد آمد.
-
$_SERVER['SERVER_NAME']
این عبارت نام هاست سرور را نمایش میدهد.
-
$_SERVER['SERVER_SOFTWARE']
با این دستور امکان شناسایی سرور مربوطه به برنامهنویس داده میشود.
نمونه مثال استفاده از متغیر سراسری $_SERVER
-
$_SERVER['SERVER_PROTOCOL']
این عبارت نام و نسخه پروتکل مورد استفاده را بر میگرداند.
-
$_SERVER['REQUEST_METHOD']
در طی آموزش پی اچ پی (PHP) یاد میگیریم که این دستور روش و متد بهکار گرفته شده جهت دسترسی به پیج مربوطه را نشان میدهد.
-
$_SERVER['REQUEST_TIME']
استمپ زمان شروع درخواست را به کاربر نمایش میدهد.
-
$_SERVER['QUERY_STRING']
در صورتیکه دسترسی به صفحات نیازمند درخواست از نوع رشتهای باشد، با استفاده از این دستور میتوان دادههای آن را برگرداند.
-
$_SERVER['HTTP_ACCEPT']
این دستور درخواستهای جاری و پذیرش آنها را نمایش میدهد.
-
$_SERVER['HTTP_ACCEPT_CHARSET']
این پیام جهت برگرداندن کاراکترهای پذیرش ریکوئستهای در حال انجام است.
-
$_SERVER['HTTP_HOST']
با این درخواست هدر میزبان یا هاست ریکوئست جاری برگردانده میشود.
سایر دستورات کاربردی با امکان تعریف در قالب پارامتر سوپر گلوبال $_SERVER
-
$_SERVER['HTTP_REFERER']
آموزش پی اچ پی (PHP) در بیان این دستور تأکید میکند که اگرچه برای کلیه کاربرها و برنامهنویسان زبان پی اچ پی این پیغام معتبر نیست اما بسته به صفحه جاری مورد نظر، URL پیج بازگردانده میشود.
-
$_SERVER['REMOTE_ADDR']
با استفاده از این آدرس،IP سیستمی که کاربر به آن متصل است نمایش داده میشود.
-
$_SERVER['REMOTE_HOST']
نام هاست کاربری را با کمک این آدرس میتوان مشاهده و پیگیری کرد.
-
$_SERVER['REMOTE_PORT']
درگاه یا پورتی را که با وب سرور سیستم کاربر در ارتباط است را بر میگرداند.
-
$_SERVER['SCRIPT_FILENAME']
این دستور نام فایل اسکریپت مورد استفاده را بر میگرداند.
-
$_SERVER['SERVER_ADMIN']
در صورتیکه اسکریپت نوشته شده در شرایط جاری و در حال انجام باشد، مقدار برگردانده شده بر روی هاست یا میزبان مجازی مینشیند. با کمک این دستور اطلاعات دیتای مربوطه به دایرکتیو ادمین سرور و در قسمت ستینگ برگردانده میشود.
استفاده از متد پست و پارامتر سوپرگلوبال $_REQUEST
-
$_SERVER['SERVER_PORT']
در آموزش پی اچ پی (PHP) این گونه بیان میشود که برای به دست آوردن نام درگاه مورد استفاده در سرور مانند پورت هشتاد، میتوان از این عبارت استفاده کرد.
-
$_SERVER['PATH_TRANSLATED']
نام فایل ماشین سیستمی که در حال انجام عملیات است، برگردانده میشود.
-
$_SERVER['SCRIPT_NAME']
با این دستور مسیر اسکریپتی که در حال اجرا است به کاربر نشان داده میشود.
-
$_SERVER['SCRIPT_URI']
آدرس صفحه جاری برگردانده میشود.
متغیر سوپرگلوبال $_REQUEST
متغیر دیگری که در دستة سوپرگلوبالها قرار گرفته و در هر کجای برنامه قابل صدازنی است، سوپر گلوبال $_REQUEST نامیده میشود. این پارامتر به جهت جمعآوری کلیه دیتاهای موجود با فرمت HTML بهکار برده شده است. زمانیکه کاربر با فشردن یک کلیک اقدام به ارسال دادههای مورد نظر میکند، فرم مربوطه به فایلی با خصوصیت منحصر بهفرد تگ میشود.
بر طبق آنچه در آموزش پی اچ پی (PHP) ارائه شده است، در صورتی که فایل مورد نظر در حال پردازش دیتاهای موجود باشد، میتوان آن را با نام فایل دیگری تغییر داد. این متغیر به برنامه نویس کمک میکند تا به جمعآوری و نمایش دادههای کاربردی در فیلد مربوطه اقدام کند. در ادامه به نمونه مثال زیر توجه کنید. در این مثال از هر دو متغیر $_SERVER و $_REQUEST استفاده شده و نتیجه به عنوان نام فیلد برگردانده میشود. همچنین دکمه انجام و داده ارسالی نمایش داده میشود.
نمونه مثال کاربردی از دو متغیر سوپرگلوبال $_SERVER و $_REQUEST
نتیجه گیری
با اتمام مجموعه دورههای آشنایی با زبان برنامهنویسی پی اچ پی مقدماتی وارد دوره پیشرفته آن شدیم. این استمرار در تلاش برای یادگیری و استفاده از فرصتهای مطالعاتی شما، قابل تقدیر بوده و ما را به ادامه کار و رسالت علمی خود امیدوار و پرانگیزهتر میکند. در این جلسه از سری جلسات آموزش پی اچ پی (PHP) به صورت کاملاً کاربردی و رایگان سایت کدیاد، به تعریف، بررسی و بیان مثالهای متعددی از سوپر گلوبالها پرداختیم.
این آرایهها به صورت سراسری مورد استفاده قرار گرفته و از هر کجای برنامه قابل صدازنی و استفاده هستند. در جلسه آینده در مورد مباحث کوکیها و سشنها بیشتر صحبت خواهیم کرد. اگر به ادامه مباحث آموزش برنامهنویسی بالاخص در زمینه کدنویسی تحت وب علاقهمند هستید، پیشنهاد میکنیم در جلسات پیشرفتة آتی نیز همراه ما بوده و به بهترین شکل ممکن دانش خود را ارتقاء دهید. در پایان فراموش نکنید که تلاش بیشتر، موفقیتهای فوقالعادهای را رقم خواهد زد.
قسمت قبلی آموزش رایگان php :
قسمت بعدی آموزش رایگان php
یا جهت مشاهده ویدیوهای اموزشی آموزش رایگان پی اچ پی وارد این صفحه شوید.