Goldenweb.it homepage

ANNUNCI | DIRECTORY | FONTS | ICONE | NEWSGROUPS | TOP25 | WALLPAPERS

English version  

Bet365 scommesse online Italia
Bet365 Italia offre le migliori scommesse online. Il nostro consilglio e' quello di iscriversi adesso sul sito di bet365 per ottenere subito il codice bonus di 100 euro riservato a tutti i nuovi clienti. Bet365 e' un sito di scommesse online sicuro
Casinò online
Primo portale dedicato ai siti di casinò online ed ai giochi da casinò online legali sul territorio italiano.

GoldenWeb.it Directory "Premium" Links - Il tuo link qui...



Confronto di oggetti in PHP 4

In PHP 4, gli oggetti sono confrontati semplicemente, cioè: due istanze di oggetto sono uguali se hanno gli stessi attributi e valori, e sono istanze della stessa classe. Questa regola regola è applicata anche nel confronto di due oggetti utilizzando l'operatore di identità (===).

Eseguendo il codice seguente:

Esempio 13-1. Esempio di confronto di oggetti 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
"Confronto di istanze create con gli stessi parametri\n";
compareObjects($o, $q);

echo
"\nConfronto di istanze create con parametri diversi\n";
compareObjects($o, $p);

echo
"\nConfronto di un'istanza della classe genitore con una sottoclasse\n";
compareObjects($o, $r);
?>
Si ha:

Confronto di istanze create con gli stessi parametri o1 == o2 : TRUE o1 != o2 : FALSE o1 === o2 : TRUE o1 !== o2 : FALSE Confronto di istanze create con parametri diversi o1 == o2 : FALSE o1 != o2 : TRUE o1 === o2 : FALSE o1 !== o2 : TRUE Confronto di un'istanza della classe genitore con una sottoclasse o1 == o2 : FALSE o1 != o2 : TRUE o1 === o2 : FALSE o1 !== o2 : TRUE

Questo è l'output che si ottiene secondo le regole di confronto descritte sopra. Solo le istanze con gli stessi valori per gli attributi e derivanti dalla stessa classe sono considerate uguali ed identiche.

Anche nei casi in cui l'oggetto è composto si applicano le stesse regole di confronto. Nell'esempio seguente creiamo una classe contenitore che archivia nell'array associativo Flag altri oggetti.

Esempio 13-2. Confronto di oggetti composti 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
"\nOggetti composti u(o,p) e v(q,p)\n";
compareObjects($u, $v);

echo
"\nu(o,p) and w(q)\n";
compareObjects($u, $w);
?>
L'output previsto è:

Oggetti composti u(o,p) e 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