例 18-2. PHP4における複合的なオブジェクトの比較
<?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
);
?>
|
上の例の出力は以下となります。
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
|
|