Manuel PHP

Table des matières

Préface
I. Au moment de commencer
II. Installation et configuration
III. Référence du langage
IV. Sécurité
V. Caractéristiques
VI. Référence des fonctions
VII. PHP et le moteur interne Zend
VIII. FAQ : foire Aux Questions
IX. Annexes
Remerciements



Comparaison d'objets

En PHP 5, la comparaison d’objets est plus compliquée qu’en PHP 4 afin d’être plus proche du comportement des langages orientés objet (bien que PHP n’en soit pas un).

Lors de l’utilisation de l’opérateur de comparaison “==”, les objets sont comparées de manière simple, à savoir : deux objets sont égaux s’ils ont les mêmes attributs et valeurs, et qu’ils sont des instances de la même classe.

D’un autre coté, lors de l’utilisation de l’opérateur d’identité (”===”), les objets sont identiques uniquement s’ils font référence à la même instance de la même classe.

Un exemple va illustrer ces règles.

Exemple 19-32. Exemple de comparaison d’objets en PHP 5

<?php
function bool2str($bool)
{
    if ($bool === false) {
            return 'FALSE';
    } else {
            return 'TRUE';
    }
}
 
function compareObjects(&$o1, &$o2)
{
    echo 'o1 == o2 : '.bool2str($o1 == $o2)."\n";
    echo 'o1 != o2 : '.bool2str($o1 != $o2)."\n";
    echo 'o1 === o2 : '.bool2str($o1 === $o2)."\n";
    echo 'o1 !== o2 : '.bool2str($o1 !== $o2)."\n";
}
 
class Flag
{
    public $flag;
 
    function Flag($flag = true) {
            $this->flag = $flag;
    }
}
 
class OtherFlag
{
    public $flag;
 
    function OtherFlag($flag = true) {
            $this->flag = $flag;
    }
}
 
$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();
 
echo "Deux instances de la même classe\n";
compareObjects($o, $p);
 
echo "\nDeux références sur le même objet\n";
compareObjects($o, $q);
 
echo "\nInstances de classes différentes\n";
compareObjects($o, $r);
?>

L’exemple ci-dessus va afficher : Deux instances de la même classe o1 == o2 : TRUE o1 != o2 : FALSE o1 === o2 : FALSE o1 !== o2 : TRUE Deux références sur le même objet o1 == o2 : TRUE o1 != o2 : FALSE o1 === o2 : TRUE o1 !== o2 : FALSE Instances de classes différentes o1 == o2 : FALSE o1 != o2 : TRUE o1 === o2 : FALSE o1 !== o2 : TRUE

Travail collaboratif

Contribuez, en ajjoutant des elements a cette page de manuel :

Merci de votre aide
L’equipe Php.fr

 


Index | Afficher le texte source | Anciennes révisions | Derniers changements | Connexion
©2007 Wiki Copyright