Abstract class: checking the class of an object

*************************
class A{
   ...
}
class B{
    ...
    public function import(A $a){
	$this->value2=($a->getValue());
    }
}
$a = new A();
$b = new B();
if($a instanceof B){
    echo "There is a big problem 
"; } if($a instanceof A){ echo "Normal
"; } // is OK $b->import($a); echo "Value of \$b imported from \$a
"; // is KO $b->import($b); echo "Value of \$b imported from \$b
"; *************************
value; } public function setValue($v){ $this->value = $v; } } class B{ private $value2; public function getValue2(){ return $this->value2; } public function setValue2($v){ $this->value2 = $v; } public function import(A $a){ $this->value2=($a->getValue()); } } $a = new A(); $b = new B(); if($a instanceof B){ echo "There is a big problem
"; } if($a instanceof A){ echo "Normal
"; } // is OK $b->import($a); echo "Value of \$b imported from \$a
"; // is KO $b->import($b); echo "Value of \$b imported from \$b
"; ?>