ADS - GoldenWeb.it Directory "Premium" Links

Farmacia Italia Online
Nella Farmacia-Italia-Online.com vi attendono dei farmaci certificati per il trattamento della disfunzione erettile, obesità, alopecia, e altro ancora. La procedura di acquisto è molto semplice: aggiungete i farmaci necessari nel cesto, compilate il modulo e fate il clic sul pulsante "Acquista". Dopo un paio di giorni si può iniziare il trattamento del disturbo. Farmacia-Italia-online.com si preoccupa dell'anonimato e del comfort dei clienti.
Fabbro Milano
Hai bisogno di un fabbro esperto e di fiducia a Milano? Sappiamo oggi giorno quanto è difficile potersi affidare in totale tranquillità ad un Fabbro su Milano e provincia, questo perché si ha sempre paura di ricevere servizi non all’altezza e preventivi gonfiati da professionisti che vogliono lucrare fin troppo sul loro lavoro.
Intimo Seducente e Lingerie Online
Seduci con la più Grande Collezione Online di Lingerie per Donna. Oltre 50 dei migliori marchi di Intimo femminile Europei: Obsessive, Livia Corsetti, Victoria Secret, Casmir, Avanua, Agent Provocateur, Intimissimi, Tezenis. Nello Shop troverai: Body, Corsetti, Babydoll, Collant, e molto altro! Invio in 24h sempre Gratuito.
Inquinamento Italia
Il portale dell’inquinamento in Italia: un sito divulgativo per imparare a capirlo, misurarlo e prevenirlo.

Submit Your Link...

PHP manual


Comparing objects

In PHP 4, objects are compared in a very simple manner, namely: Two object instances are equal if they have the same attributes and values, and are instances of the same class. Similar rules are applied when comparing two objects using the identity operator (===).

If we were to execute the code in the example below:

Example #1 Example of object comparison in PHP 4

<?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 {
    var 
$flag;

    function 
Flag($flag=true) {
            
$this->flag $flag;
    }
}

class 
SwitchableFlag extends Flag {

    function 
turnOn() {
        
$this->flag true;
    }

    function 
turnOff() {
        
$this->flag false;
    }
}

$o = new Flag();
$p = new Flag(false);
$q = new Flag();

$r = new SwitchableFlag();

echo 
"Compare instances created with the same parametersn";
compareObjects($o$q);

echo 
"nCompare instances created with different parametersn";
compareObjects($o$p);

echo 
"nCompare an instance of a parent class with one from a subclassn";
compareObjects($o$r);
?>

The above example will output:

    
Compare instances created with the same parameters
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Compare instances created with different parameters
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Compare an instance of a parent class with one from a subclass
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE
Which is the output we will expect to obtain given the comparison rules above. Only instances with the same values for their attributes and from the same class are considered equal and identical.

Even in the cases where we have object composition, the same comparison rules apply. In the example below we create a container class that stores an associative array of Flag objects.

Example #2 Compound object comparisons in PHP 4

<?php
class FlagSet {
    var 
$set;

    function 
FlagSet($flagArr = array()) {
        
$this->set $flagArr;
    }

    function 
addFlag($name$flag) {
        
$this->set[$name] = $flag;
    }

    function 
removeFlag($name) {
        if (
array_key_exists($name$this->set)) {
            unset(
$this->set[$name]);
        }
    }
}


$u = new FlagSet();
$u->addFlag('flag1'$o);
$u->addFlag('flag2'$p);
$v = new FlagSet(array('flag1'=>$q'flag2'=>$p));
$w = new FlagSet(array('flag1'=>$q));

echo 
"nComposite objects u(o,p) and v(q,p)n";
compareObjects($u$v);

echo 
"nu(o,p) and w(q)n";
compareObjects($u$w);
?>

The above example will output:

Composite objects u(o,p) and v(q,p)
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

u(o,p) and w(q)
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE