Rechercher une fonction PHP

Changements dans les classes et objets

instanceof, is_a(), is_subclass_of() et catch

En PHP 5.0, is_a() a été rendu abandonné et remplacé par l'opérateur instanceof. Il y a eu des problèmes dans les premières implantations de instanceof, qui se base sur __autoload() pour rechercher les classes non définies. Si la classe n'est pas définie, instanceof émettait une erreur fatale E_ERROR, après l'échec de __autoload(). Le même comportement apparaissait avec l'opérateur catch et la fonction is_subclass_of().

Aucune de ces instructions n'appelle plus __autoload() en PHP 5.1.x, et les palliatifs à base de class_exists() utilisé dans le code écrit en PHP 5.0.x ne sont plus nécessaires.

Méthodes privées abstraites

Les méthodes privées abstraites sont supportées en PHP entre 5.0.0 et et 5.0.4, mais elles ont été abandonnées car private et abstract sont mutuellement exclusif.

Retour à la première page de Manuel PHP  Table des matières Haut

Changements dans les règles d'héritage

Avec PHP 5.0, les déclarations de fonctions dans les interfaces sont traitées exactement de la même manière que pour les déclarations de fonctions dans les classes. Ce n'est plus le cas depuis octobre 2004, au moment où seuls l'option d'accès public a été autorisée dans les déclarations d'interface. Depuis avril 2005, ce qui est antérieur à PHP 5.0b1, l'option static a aussi été autorisée. Mais les options protected and private émettent désormais une erreur E_ERROR, tout comme abstract. Notez que cette modification ne va pas affecter votre code existant, car aucune de ces options n'a de sens dans le cadre d'une interface.

Retour à la première page de Manuel PHP  Table des matières Haut

Changements dans les règles d'héritages

En PHP 5.0, il était possible d'avoir une déclaration de fonction qui dérivait d'une classe ayant la même fonction mais pas la même signature. Par exemple :

Ce code va émettre une erreur E_STRICT si utilisé avec PHP 5.1.x.

<?php
class Base {
    function &
return_by_ref() {
        
$r 1;
        return 
$r;
    }
}

class 
Derived extends Base {
    function 
return_by_ref() {
        return 
1;
    }
}
?>

Retour à la première page de Manuel PHP  Table des matières Haut

Constantes de classe

En PHP 5.0.x, le code suivant était valide :

En PHP 5.1.x, la redéfinition d'une constante de classe émet une erreur fatale E_ERROR.

<?php
class test {
    const 
foobar 'foo';
    const 
foobar 'bar';
}

?>
Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-migration51.oop.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut