
متغیرهای گلوبال و سوپر گلوبال در PHP
با استفاده از فیلم های آموزشی تولید شده توسط کلیک سایت، به راحتی می توانید متغیرهای گلوبال و سوپر گلوبال در PHP را آموزش ببینید. در ادامه دعوت می شود که فیلم دمو (بخش اول آموزش) را در زیر مشاهده نمایید.
متغیرهای گلوبال- global
برخلاف متغیرهای محلی یا local ، متغیرهای جهانی یا global را می توان در هرجایی از برنامه مورد استفاده قرار داد. برای اینکه یک متغیر دارای قلمرو global باشد، باید به صورت صریح در تابعی که قرار است آنجا مورد استفاده قرار بگیرد، جهانی یا global بودن آن مشخص شود. برای این کار باید در زمان معرفی متغیر از کلمه کلیدی global قبل از نام متغیر استفاده کنیم.
<?php
$x = 50;
function addit() {
global $x;
$x++;
echo "x is $x";
}
addit();
?>
خروجی
X is 51
متغیرهای سوپرگلوبال - Superglobals
متغیر های سوپرگلوبال (Superglobal) در PHP 4.1.0 معرفی شده اند و متغیرهای داخلی هستند که همیشه در همه scopeها و بخش های کدنویسی در دسترس هستند. آنها چند متغیر از پیش تعریف شده در پی اچ پی هستند، به این معنی که آنها همیشه صرف نظر از دامنه تعریف شان (scope) در دسترس هستند، و شما می توانید به آنها از داخل هر تابع یا کلاس یا فایلی بدون اینکه نیاز به انجام کار خاصی باشد، دسترسی داشته باشید.
متغیر های سوپرگلوبال php عبارتند از :
$_GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
در این مقاله تعدادی از این متغیرها بحث می شوند و مابقی آنها در مطالب بعدی بحث خواهند شد.
متغیر سوپر گلوبال GLOBALS$ در PHP
$GLOBALS یک متغیر سوپرگلوبال (Superglobal) است. برای دسترسی به متغیرهای global از هرجایی از کدهای اسکریپت حتی از داخل function ها و method ها استفاده می شود.php همه متغیرهای global را در یک آرایه ای به نام
$GLOBALS[index]
نگهداری می کند. شاخص index نام متغیر را در بر می گیرد.
مثال زیر نشان می دهد که چگونه از متغیر سوپرگلوبال GLOBALS$ استفاده کنید:
<?php
$x = 50;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
خروجی
75
در مثال بالا، از آنجا که z یک متغیر موجود در آرایه $GLOBALS است، از خارج از تابع قابل دسترسی است!
متغیر سوپرگلوبال SERVER_$
$_SERVER :
یک متغیر سوپرگلوبال در PHP است که حاوی اطلاعات در مورد هدرها، مسیرها و مکان های اسکریپت است.
مثال زیر نشان می دهد که چگونه از بعضی از عناصر در
$ _SERVER
استفاده کنید:
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
خروجی
/cod/index.php
localhost
localhost
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
/cod/index.php
در جدول زیر پارامتر هایی را مشاهده خواهید کرد که متعلق به SERVER_$ می باشند.
توضیحات |
متغیر |
بازگردانی نام اسکریپت در حال اجرا |
$_SERVER[‘PHP_SELF’] |
بازگردانی اطلاعاتی در مورد ورژنCommon gateway interface یا به اختصار CGI سرور |
$_SERVER[‘GATEWAY_INTERFACE’] |
بازگردانی آدرس IP سرور میزبان |
$_SERVER[‘SERVER_ADDR’] |
بازگردانی نام سرور مانند (https://clicksite.org) |
$_SERVER[‘SERVER_NAME’] |
بازگردانی رشته شناسایی سرور مانند (Apache/2.2.24) |
$_SERVER[‘SERVER_SOFTWARE’] |
بازگردانی نام و نسخه پروتکل اطلاعات مانند (HTTP/1.1) |
$_SERVER[‘SERVER_PROTOCOL’] |
بازگردانی روش درخواست استفاده شده برای دسترسی به صفحه (مانند POST) |
$_SERVER[‘REQUEST_METHOD’] |
بازگردانی زمان (timestamp ) شروع درخواست مانند (1377687496) |
$_SERVER[REQUEST_TIME] |
بازگردانی رشته پرس و جو (query string) اگر صفحه از طریق یک query string قابل دسترسی باشد |
$_SERVER[‘QUERY_STRING’] |
بازگردانی هدر قبولی از درخواست جاری |
$_SERVER[‘HTTP_ACCEPT’] |
بازگردانی هدر Accept_Charset از درخواست فعلی مانند (utf-8,ISO-8859-1) |
$_SERVER[‘HTTP_ACCEPT_CHARSET’] |
بازگردانی هدر میزبان(host) از درخواست جاری |
$_SERVER[‘HTTP_HOST’] |
بازگردانی URL کامل از صفحه جاری (معتبر نیست زیرا همه عوامل کاربر از آن پشتیبانی نمی کنند) |
$_SERVER[‘HTTP_REFERER’] |
بازگردانی آیا اسکریپت از طریق یک پروتکل HTTP امن درخواست شده است? |
$_SERVER[‘HTTPS’] |
بازگردانی آدرس IP جایی که کاربر در حال مشاهده صفحه ی جاری است. |
$_SERVER[‘REMOTE_ADDR’] |
بازگردانی نام میزبان (host) از جایی که کاربر در حال مشاهده صفحه ی جاری است. |
$_SERVER[‘REMOTE_HOST’] |
بازگردانی پورت استفاده شده روی دستگاه کاربر برای برقراری ارتباط با سرور وب |
$_SERVER[‘REMOTE_PORT’] |
بازگردانی مسیر مطلق اسکریپت جاری در حال اجرا |
$_SERVER[‘SCRIPT_FILENAME’] |
بازگردانی مقدار داده شده به دستور SERVER_ADMIN در فایل پیکربندی وب سرور. |
$_SERVER[‘SERVER_ADMIN’] |
بازگردانی پورت روی دستگاه سرور که توسط سرور وب برای برقراری ارتباط استفاده می شود (مانند 80). |
$_SERVER[‘SERVER_PORT’] |
بازگردانی نسخه سرور و نام میزبان مجازی که به صفحات سرور تولید شده اضافه شده است. |
$_SERVER[‘SERVER_SIGNATURE’] |
بازگردانی فایل سیستم مسیر مبتنی بر اسکریپت فعلی |
$_SERVER[‘PATH_TRANSLATED’] |
بازگردانی مسیر اسکریپت جاری |
$_SERVER[‘SCRIPT_NAME’] |
بازگردانی URI صفحه جاری |
$_SERVER[‘SCRIPT_URI’] |
REQUEST_$ در php
وقتی فرمی توسط کاربر تکمیل و ارسال می گردد، اطلاعات فرم در متغیر $_REQEST ذخیره می گردد.
در مثال زیر ما یک فُرم(Form) داریم که دارای یک فیلد ورودی (input) و یک دکمه ارسال (submit) می باشد. وقتی کاربر بر روی دکمه ارسال کلیک می کند اطلاعات فرم، به فایل مشخص شده در خصیصه ی action فرم، ارسال می شود. در این مثال داده ها به صفحه خودمان برمی گردند. یعنی منظور از مقدارِ action در فرم ، آدرس صفحه ی خودمان است. البته که شما می توانید داده ها را به هر صفحه ای که خواستید ارسال کنید.
چون داده های فرم داخل متغیر $_REQUSET ذخیره می شوند بنابراین می توانیم برای دسترسی به داده های فرم به این متغیر رجوع کنیم.
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
با نوشتن این کدها چنین فرمی برای ما نشان داده می شود :
در مرحله بعدی متنی را در فیلدورودی (input) وارد می کنیم :
حال روی دکمه submit کلیک می کنیم، اطلاعات ذخیره شده در $_REQUEST را چاپ می کنیم.
POST_$ در php
وقتی فرمی را با متد Post ("method="post) ارسال می کنیم، اطلاعات فرم داخل متغیری به نام $_POST قرار می گیرد و ما می توانیم از اطلاعات این متغیر در هر کجای برنامه استفاده کنیم.
در مثال زیر ما یک فُرم(Form) داریم که دارای یک فیلد ورودی (input) و یک دکمه ارسال (submit) می باشد. وقتی کاربر بر روی دکمه ارسال کلیک می کند اطلاعات فرم، به فایل مشخص شده در خصیصه ی action فرم، ارسال می شود. در این مثال داده ها به صفحه خودمان برمی گردند. یعنی منظور از مقدارِ action در فرم ، آدرس صفحه ی خودمان است. البته که شما می توانید داده ها را به هر صفحه ای که خواستید ارسال کنید.
چون داده های فرم داخل متغیر $_POST ذخیره می شوند بنابراین می توانیم برای دسترسی به داده های فرم به این متغیر رجوع کنیم.
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
با نوشتن این کدها چنین فرمی برای ما نشان داده می شود :
در مرحله بعدی متنی را در فیلدورودی (input) وارد می کنیم :
حال روی دکمه submit کلیک می کنیم، اطلاعات ذخیره شده در $_POST را چاپ می کنیم.
GET_$ در php
وقتی فرمی را با متد get ارسال می کنیم، داده های فرم، در متغیری به نام $_GET ذخیره می شود. هم چنین اطلاعات موجود در URL نیز در متغیر $_GET ذخیره می شود.
فرض کنید که یک صفحه HTML داریم که حاوی لینک زیر می باشد:
<html>
<body>
<a href="test_get.php?subject=PHP&web=clicksite.org">Test $GET</a>
</body>
</html>
هنگامی که یک کاربر بر روی پیوند "Test $ GET" کلیک می کند، پارامترهای "subject" و "web" به "test_get.php" ارسال می شوند، سپس شما می توانید با استفاده از متغیر سوپر گلوبال
$_GET
به آنها در صفحه مقصد یعنی "test_get.php" دسترسی پیدا کنید.
مثال زیر کدهای صفحه "test_get.php" نشان می دهد:
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>
خروجی این کدها بدین شکل می باشد :
این فصل در یک نگاه:
در این مجموعه به ساخت سیستم نظردهی در php می پردازیم.…
بنا به درخواست یکی از کاربران گرامی سایت (امیر تجاره) طی چند مجموعه آموزشی قصد داریم نحوه ساخت و پیاده سازی سیستم ثبت نظرات و هم چنین نحوه ثبت پاسخ به هر نظر را مورد بررسی قرار دهیم. این مج…این فصل در یک نگاه:
در این مجموعه به آموزش ارسال ایمیل در phpmailer می پردازیم.یکی از مزایای phpmailer و ارسال ایمیل در php با استفاده از ph…
بی شک ارسال ایمیل php از مهم ترین توانایی های یک برنامه نویس php به شمار می رود. این ایمیل می تواند برای تبلیغات و یا اطلاع رسانی و موارد بسیار زیادی به کار رود. در php روش های مختلفی برای…این فصل در یک نگاه:
در این فصل به معرفی پایگاه داده می پردازیم و با مفهوم دیتابیس و پایگاه های داده آشنایی پیدا می کنیم.…
آیا اصلا من میتونم یک طراح سایت و برنامه نویس بشم؟ آیا یادگیری طراحی سایت سخته ؟ آیا باید حتما زبان انگلیسی رو مسلط باشم؟ آیا حتما نیاز هست که رشته کامپیوتر باشم ؟ آیا یادگیری برنامه نویسی …این فصل در یک نگاه:
در این فصل با زبان سمت سرور PHP آشنا می شویم و توابع و دستورات مهم این زبان برنامه نویسی را بررسی خواهیم کرد…
بنام خدا با سلام خدمت تمامی دوستان عزیز کلیک سایت. بسیار خرسندیم که با یک دوره پروژه محور دیگر در خدمت شما دوستان محترم هستیم که انشالله قرار است قدم بگذاریم به دنیای بسیار جذاب و مح…این فصل در یک نگاه:
در این فصل می آییم یک سایت بلاگ با cms اختصاصی را پیاده سازی می کنیم که هم مروری باشه برای زبان برنامه نویسی PHP و هم شم…
توجه: این دوره دائما توسط مهندس روشنایی (مدرس دوره) بروز گردیده و مطابق با آخرین استانداردهای برنامه نویسی آپدیت می شود. توجه فرمائید دریافت آپدیت ها برای خریداران قبلی رایگان می باشد و نیاز…این فصل در یک نگاه:
آشنایی با دستورات html ، css و js و انجام مینی پروژه سامانه نمرات دانش آموزان مدرسه آلفا…
توضیحات کلی مجموعه: در این دوره به مفاهیم و توابع php و mysql پرداخته شده و این دوره منتج به تولید یک پروژه بزرگ نخواهد شد در پایان این دوره یک مینی پروژه مثل سامانه کارنامه دانش آموزان مدر…این فصل در یک نگاه:
وب سایت فروشگاهی خود را بدون دانش برنامه نویسی و بدون پیش نیاز طراحی کنید.فروشگاه اینترنتی با افزونه ووکامرس که به شهرت …
راه اندازی فروشگاه اینترنتی در وردپرس با افزونه ووکامرس آموزش حرفه ای فروشگاه ساز وردپرس با افزونه ووکامرس آخرین باز تولید آموزش ویدیویی ووکامرس در 1396/11/15 صورت گرفت. …این فصل در یک نگاه:
…
سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…این فصل در یک نگاه:
آشنایی با امکانات جدید لاراول ۷…
برخی از سرفصل های این پکیج آموزشی : لاراول چیست و چرا ما لاراول استفاده میکنیم کامپوزر کارش چیه و نصب اون نصب لاراول آموزش نصب لاراول از طریق اینستالر آموزش نصب لاراول با استفاده ا…این فصل در یک نگاه:
داشتن یک اپلیکیشن موبایل برای وب سایت به برند سازی و اعتبار وب سایت بهبود و تسریع می بخشد لذا توصیه می شود با وجود همگان…
دوره آموزش طراحی و ساخت اپلیکیشن موبایل برای وب سایت قطعا شما هم دوست دارید برای وب سایت خود اپلیکیشن بسازید و پس از پیگیری متوجه شدید که هزینه ای بیش از 5.000.000 تومان باید پرداخت بکن…این فصل در یک نگاه:
در اصل فصل در مورد performance صحبت خواهیم کرد :-React Performance-Lazy-Error Boundaries و سایت را بر روی هاست واقعی قرا…
با سلام خدمت کلیک سایتی های عزیز، به دوره ی صفر تا صد طراحی سایت با react js خوش آمدید. نکته:این دوره کاملا پروژه محور میباشد نکته:این دوره هیچ پیش نیازی ندارد ReactJS چیست؟ ReactJS اس…این فصل در یک نگاه:
در این فصل(فصل یازدهم مجموعه)،به طراحی CMS (سیستم مدیریت محتوا)اختصاصی فروشگاه می پردازیم.هدف از طراحی این بخش،آنست که م…
در این مجموعه آموزشی قصد داریم از صفر تا صد طراحی یک فروشگاه اینترنتی رو به صورت کامل آموزش بدهیم.این فروشگاه شامل تمامی بخش های مورد نیاز یک فروشگاه اینترنتی است. هدف از این مجموعه،آموزش…این فصل در یک نگاه:
در بازاریابی نوین روش جدیدی ابداع شده که این روزا ها بسیار کسب و کارهای اینترنتی را با هزینه بسیار بسیار پایین و بازدهی …
توضیحات کلی مجموعه: (توجه: حتما با کلیک روی عکس این دوره آموزشی در بالا دمو را مشاهده کنید یا قسمت اول را رایگان دانلود کنید) در بازاریابی اینترنتی هر روز شاهد روش های جدید و استراتژی های ن…این فصل در یک نگاه:
طراحی پنل مدیریت(دسته بندی)- دسته بندی یا category - نمایش دسته های فرعی در view با ورود به یکی از دسته های اصلی و آشن…
توضیحات کلی مجموعه: این مجموعه توسط فریمورک محبوب و دوست داشتنی bootstrap و به صورت تضمینی و صفر تا صد جهت یادگیری کارآموزان عزیز ارائه گردیده و دوستانی که این دوره را به طور کامل و دقیق…این فصل در یک نگاه:
…
پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…این فصل در یک نگاه:
فصل پنجم…
توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…این فصل در یک نگاه:
ایجاد پروژه آژانس مسافرتی.....…
فصل اول: آشنایی با مبانی برنامه نویسی اندروید آشنایی با معماری برنامه های اندرویدی ساخت شبیه ساز جهت تست پروژه اندروید آشنایی با دستور Toast و حلقه for در برنامه های اندروی…این فصل در یک نگاه:
بهترین و پر بازده ترین روش تبدیل بازدیدکننده سایت به مشتری تبلیغات هدفمند و برند سازی هوشمندانه با ایمیل می باشد. ایمیل…
وبینار(سمینار آنلاین) آموزش تکنیک های ایمیل مارکتینگ اگر تا انتها این متن را مطالعه کنید نظر شما در مورد ایمیل مارکتینگ 180 درجه عوض می شود!! بر هیچکس پوشیده نیست که از سال 1972 که ای…این فصل در یک نگاه:
مباحث تکمیلی فریم ورک لاراول…
فصل اول :آموزش مقدماتی فریم ورک لاراول معرفی فریم ورک لاراول و پیشنیازهای انجام کار انجام کانفیگ های اولیه برای نصب و راه اندازی فریم ورک معرفی روش های نصب پروژه لاراولی از طریق سایت گی…این فصل در یک نگاه:
مباحث مقدماتی فریم ورک react.js…
توضیحات کلی مجموعه: فصل اول : آشنایی با مباحث مقدماتی فریم ورک react.js نصب و راه اندازی node.js و کلیه پیش نیازهای لازم نصب فریم ورک react روی لوکال و انجام تست های لازم آغاز آشنایی …