PHP/Class/Reflection Class Hiearchy
get_parent_class: get parent class name
<source lang="html4strict">
<?php class Employee {
private $title; private $lastName; private $firstName; protected $salary; private $ratio = 0; public function __construct($title, $firstName, $mainName, $salary ) { $this->title = $title; $this->firstName = $firstName; $this->lastName = $mainName; $this->salary = $salary; } function getSummaryLine() { $base = "$this->title ( $this->lastName, "; $base .= "$this->firstName )"; return $base; }
} class Developer extends Employee {
private $stayYear = 0; public function __construct($title, $firstName, $mainName, $salary, $stayYear ) { parent::__construct($title, $firstName, $mainName, $salary ); $this->stayYear = $stayYear; } public function getStayLength() { return $this->stayYear; } function getSummaryLine() { $base = parent::getSummaryLine(); $base .= ": playing time - $this->stayYear"; return $base; }
}
print get_parent_class( "Developer" ); ?>
</source>
is_subclass_of: get the subclass
<source lang="html4strict">
<?php class Employee {
private $title; private $lastName; private $firstName; protected $salary; private $ratio = 0; public function __construct($title, $firstName, $mainName, $salary ) { $this->title = $title; $this->firstName = $firstName; $this->lastName = $mainName; $this->salary = $salary; } public function firstName() { return $this->firstName; } public function getlastName() { return $this->lastName; } public function setRatio( $num ) { $this->ratio=$num; } public function getRatio() { return $this->ratio; } public function getTitle() { return $this->title; } public function getPrice() { return ($this->salary - $this->ratio); } public function getFullName() { return "{$this->firstName}" . " {$this->lastName}"; } function getSummaryLine() { $base = "$this->title ( $this->lastName, "; $base .= "$this->firstName )"; return $base; }
} class Developer extends Employee {
private $stayYear = 0; public function __construct($title, $firstName, $mainName, $salary, $stayYear ) { parent::__construct($title, $firstName, $mainName, $salary ); $this->stayYear = $stayYear; } public function getStayLength() { return $this->stayYear; } function getSummaryLine() { $base = parent::getSummaryLine(); $base .= ": playing time - $this->stayYear"; return $base; }
} $developer = new Developer("A", "A1", "A2", 10.99, 60.33 ); if ( is_subclass_of( $developer, "Employee" ) ) {
print "Developer is a subclass of Employee\n";
}
?>
</source>