Forum und email

Χρησιμοποιώντας παλιό κώδικα με νέες εκδόσεις της PHP

Τώρα που η PHP έχει μεγαλώσει και είναι μια δημοφιλής scripting γλώσσα, υπάρχουν περισσότεροι πόροι εκεί έξω οι οποίοι έχουν καταλόγους από κώδικα που μπορείτε να επαναχρησιμοποιήσετε στα δικά σας scripts. Στο μεγαλύτερο μέρος, οι PHP developers (προγραμματιστές) της γλώσσας PHP προσπάθησαν να είναι προς-τα-πίσω συμβατοί (backwards compatible), ούτως ώστε ένα script γραμμένο για μια πιο παλιά έκδοση θα τρέχει (ιδανικά) χωρίς αλλαγές σε μια νεότερη έκδοση της PHP. Πρακτικά όμως, κάποιες αλλαγές θα χρειαστούν να γίνουν.

Δύο από τις πιο σημαντικές αλλαγές που επιρεάζουν παλαιότερο κώδικα είναι:

  • Το παλιό array $HTTP_*_VARS έχει ξεπεραστεί (το οποίο χρειάζεται να αναγραφεί ως global όταν χρησιμοποιείται σε μια function ή method). Οι εξής autoglobal arrays εισήχθησαν στην PHP » 4.1.0. Είναι οι: $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_REQUEST, and $_SESSION. Τα παλαιότερα $HTTP_*_VARS arrays, όπως το $HTTP_POST_VARS, υπάρχουν ακόμη από την PHP 3.
  • Οι εξωτερικές μεταβλητές δεν γίνονται register (καταχωρούνται) ως global εξ ορισμού. Με άλλα λόγια, από την PHP » 4.2.0 το PHP directive register_globals είναι εξ ορισμού off στο in php.ini. Η μέθοδος που προτιμείται για προσπέλαση αυτών των τιμών είναι μέσα από τα autoglobal arrays που αναφέρθηκαν νωρίτερα. Παλαιότερα scripts, βιβλία και tutorials (μαθήματα) μπορεί να στηρίζονται σε αυτή την ρύθμιση να είναι ενεργοποιημένη (on). Αν είναι ενεργοποιημένη, για παράδειγμα, κάποιος θα μπορούσε να χρησιμοποιήσει το $id από το URL https://www.example.com/foo.php?id=42. Είτε on είτε off, η $_GET['id'] είναι διαθέσιμη.
Για περισσότερες πληροφορίες για αυτές τις αλλαγές, δείτε την ενότητα για τις προκαθορισμένες μεταβλητές και τα links εκεί.