Forum und email

משתנים המוגדרים מראש

PHP מספקת מספר גדול של משתנים המוגדרים מראש לכל סקריפט הרץ. רבים מהם לא יכולים להיות מתועדים מכיוון שהם תלויים בסוג השרת, ההתקנה, הגרסא ופקטורים נוספים. כמה מהם לא יהיו זמינים עבור PHP אם הוא רץ משורת הפקודה. עבור רשימה מדוייקת של משתנים אלו ראה משתנים שמורים המוגדרים מראש.

Warning

החל מPHP4.2.0 ערך ברירת המחדל עבור ההנחיה register_globals הוא off. זהו שינוי משמעותי בPHP. המצב בו register_globals off משפיע על טווח רחב של שמתנים הזמינים בטווח ההכרה הראשי לדוגמא, על מנת לקבל את DOCUMENT_ROOT אתה תשתמש ב $_SERVER['DOCUMENT_ROOT'] במקום $DOCUMENT_ROOT, או $_GET['id'] מהURL https://www.example.com/test.php?id=3 במקום $id, או $_ENV['HOME'] במקום $HOME.

עבור מידע הקשור לשינוי זה, ראה את התיעוד של register_globals, ואת פרק האבטחה שימוש ב Register Globals , כמו גם הודעות ההשקה של PHP » 4.1.0 ו » 4.2.0.

שימוש במשתני PHP השמורים הקבועים מראש כגון מערכים סופר גלובאליים, הוא מועדף.

החל מגרסא 4.1.0 ואילך, PHP מאפשר רשימה נוספת של מערכים המוגדרים מראש המכילים משתנים משרת האינטרנט (אם הוא זמין), הסביבה, וקלט המשתמש. מערכים אלו ייחודיים בכך שהם תמיד גלובאליים, כלומר זמינים בכל טווח הגדרה. בגלל סיבה זו הם ידועים כ "סופר גלובליים". (אין דרך בPHP בה המשתמש יכול להגדיר משתנים סופר גלובליים) רשימה זו מפורטת למטה; מכל מקום, לפירוט כל תכנם, ודיון נוסף לגבי האופי שלהם ראה את החלק משתנים שמורים המוגדרים מראש. כמו כן, שים לב כיצד המשתנים הישנים המוגדרים מראש ($HTTP_*_VARS) עדיין קיימים. החל מ PHP 5.0.0, מערכי המשתנים המוגדרים מראש יכולים להיות בלתי זמינים על ידי ההנחיה register_long_arrays.

Note: משתני משתנים משתנים סופר גלובליים לא יכולים להיות מיושמים כ משתני משתנים.

אם משתנה מסויים ב variables_order לא אותחל, הערך המתאים לו ממערכי המשתנים המוגדרים מראש, לא יאותחל גם כן.

המשתנים הסופר גלובאליים
$GLOBALS
מכיל מכוון לכל משתנה שזמין בטווח ההגדרה הראשי של הסקריפט המפתחות של המערך הם השמות של המשתנים בטווח ההגדרה הראשי. $GLOBALS קיים החל מPHP 3.
$_SERVER
משתנה המאותחל על ידי שרת הווב או לחילופין מכיל נתונים הקשורים לסביבת הריצה של הסקריפט. מקביל למערך $HTTP_SERVER_VARS הישן (שעדיין קיים, אבל לא מומלץ להשתמש בו)
$_GET
המשתנים שהגיע לסקריפט על ידי HTTP GET. מקביל למערך $HTTP_GET_VARS הישן (שעדיין קיים, אבל לא מומלץ להשתמש בו)
$_POST
המשתנים שהגיעו לסקריפט על ידי HTTP POST. מקביל למערך $HTTP_POST_VARS הישן (שעדיין קיים, אבל לא מומלץ להשתמש בו)
$_COOKIE
המשתנים שהגיעו לסקריפט על ידי HTTP cookies. מקביל למערך $HTTP_COOKIE_VARS הישן (שעדיין קיים, אבל לא מומלץ להשתמש בו)
$_FILES
משתנים שהגיעו לסקריפט על ידי העלאת קבצים בשיטה HTTP POST. מקביל למערך $HTTP_POST_FILES הישן (שעדיין קיים, אבל לא מומלץ להשתמש בו). ראה העלאת קבצים על ידי POST לפרטים נוספים.
$_ENV
משתנים שהגיעו לסקריפט מסביבת ההרצה. מקביל למערך $HTTP_ENV_VARS הישן (שעדיין קיים, אבל לא מומלץ להשתמש בו).
$_REQUEST
משתנים שהגיעו לסקריפט עלי ידי מנגנוני הקלט GET, POST, ו COOKIE, ועל כן אי אפשר לסמוך עליהם. כללי הקדימות לגבי משתנים אלו נכללים בהנחיה variables_order בקובץ הini. למערך זה אין מקבילה בגרסאות הקודמות לPHP 4.1.0. ראה גם import_request_variables().
Caution

מאז PHP 4.3.0, מידע FILE המגיע מ $_FILES לא קיים ב$_REQUEST.

Note: כאשר רצים מ שורת הפקודה , משתנה זה לא יכלול את נתוני argv ו argc; הם קיימים במערך $_SERVER.

$_SESSION
משתנים הרשומים בסשין של הסקריפט מקביל למערך $HTTP_SESSION_VARS הישן (שעדיין קיים, אבל לא מומלץ להשתמש בו). ראה בפרק פונקציות לטיפול בסשין section לאינפורמציה נוספת.