Jämföra objekt: Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '== Jämförelse av objekt == När jämförelseoperatorn (==) används, jämförs objektvariabler på ett enkelt sätt, nämligen: Två objektinstanser är lika om de har samma attribut och värden (värden jämförs med ==) och är instanser av samma klass. När identitetsoperatorn (===) används, är objektvariabler identiska endast om och endast om de refererar till samma instans av samma klass. Ett exempel kommer att klargöra dessa regler. === Exempel #1 Exempel...') |
(Ingen skillnad)
|
Nuvarande version från 19 augusti 2024 kl. 05.39
Jämförelse av objekt
När jämförelseoperatorn (==) används, jämförs objektvariabler på ett enkelt sätt, nämligen: Två objektinstanser är lika om de har samma attribut och värden (värden jämförs med ==) och är instanser av samma klass.
När identitetsoperatorn (===) används, är objektvariabler identiska endast om och endast om de refererar till samma instans av samma klass.
Ett exempel kommer att klargöra dessa regler.
Exempel #1 Exempel på objektjämförelse
<?php
function bool2str($bool)
{
if ($bool === false) {
return 'FALSKT';
} else {
return 'SANT';
}
}
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 __construct($flag = true) {
$this->flag = $flag;
}
}
class OtherFlag
{
public $flag;
function __construct($flag = true) {
$this->flag = $flag;
}
}
$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();
echo "Två instanser av samma klass\n";
compareObjects($o, $p);
echo "\nTvå referenser till samma instans\n";
compareObjects($o, $q);
echo "\nInstanser av två olika klasser\n";
compareObjects($o, $r);
?>
Exemplet ovan kommer att ge följande resultat:
Två instanser av samma klass o1 == o2 : SANT o1 != o2 : FALSKT o1 === o2 : FALSKT o1 !== o2 : SANT Två referenser till samma instans o1 == o2 : SANT o1 != o2 : FALSKT o1 === o2 : SANT o1 !== o2 : FALSKT Instanser av två olika klasser o1 == o2 : FALSKT o1 != o2 : SANT o1 === o2 : FALSKT o1 !== o2 : SANT
Notera:
Tillägg kan definiera egna regler för objektjämförelse (==).
Sidslut
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.oop5.object-comparison.php
PHP
Språkreferens
Språkreferens#Klasser_och_Objekt
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/