PHP מספקת מספר גדול של משתנים המוגדרים מראש לכל סקריפט הרץ. רבים מהם לא יכולים להיות מתועדים מכיוון שהם תלויים בסוג השרת, ההתקנה, הגרסא ופקטורים נוספים. כמה מהם לא יהיו זמינים עבור PHP אם הוא רץ משורת הפקודה. עבור רשימה מדוייקת של משתנים אלו ראה משתנים שמורים המוגדרים מראש.
החל מPHP4.2.0 ערך ברירת המחדל עבור ההנחיה register_globals הוא off. זהו שינוי משמעותי בPHP. המצב בו register_globals off משפיע על טווח רחב של שמתנים הזמינים בטווח ההכרה הראשי לדוגמא, על מנת לקבל את DOCUMENT_ROOT אתה תשתמש ב $_SERVER['DOCUMENT_ROOT'] במקום $DOCUMENT_ROOT, או $_GET['id'] מהURL http://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 לא אותחל, הערך המתאים לו ממערכי המשתנים המוגדרים מראש, לא יאותחל גם כן.
מאז PHP 4.3.0, מידע FILE המגיע מ $_FILES לא קיים ב$_REQUEST.
Note: כאשר רצים מ שורת הפקודה , משתנה זה לא יכלול את נתוני argv ו argc; הם קיימים במערך $_SERVER.