Forum und email

שימוש בקוד ישן בגרסאות חדשות של PHP

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

שני השינויים האחרונים המשמעותיים ביותר, מההיבט של תאימות לאחור הם:

  • הממלצה שלא להשתמש במערכים $HTTP_*_VARS (עליהם צריך להצהיר כגלובאליים על מנת להשתמש בהם בתוך פונקציה או שיטה של מחלקה). המערכים הסופר גלובאליים הבאים, הושקו בPHP גירסא » 4.1.0: $_GET, $_POST, $_COOKIE, $_SERVER, $_FILES, $_ENV, $_REQUEST, ו $_SESSION. המערכים $HTTP_*_VARS הישנים יותר, כדוגמת $HTTP_POST_VARS, עדיין קיימים (מאז PHP 3). החל מ PHP 5.0.0, מערכי המשתנים המוגדרים מראש יכולים להיות בלתי זמינים על ידי ההנחיה register_long_arrays.
  • משתנים חיצוניים כבר אינם רשומים בטווח ההגדרה הגלובאלי כברירת מחדל. במילים אחרות, מאז PHP » 4.2.0 ההנחיה הקונפיגורטיבית register_globals נקבעה כברירת מחדל ל off בקובץ php.ini. השיטה המועדפת לקבלת הנתונים היא על ידי המערכים הסופר גלובאליים שהוזכרו לעיל. ספרים וקטעי קוד ישנים, אולי מסתמכים על כך שההנחיה הזו עדיין על on. לדוגמא, המשתנה $id מהURL https://www.example.com/foo.php?id=42. קיים כ$_GET['id']ללא תלות בערך ההנחיה דלעיל.
לפרטים נוספים לגבי שינויים אלו, ראה את החלק משתנים מוגדרים מראש והקישורים הפנימיים שם.