PHP/Class/Reflection Class Hiearchy — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 07:00, 26 мая 2010
get_parent_class: get parent class name
<?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" );
?>
is_subclass_of: get the subclass
<?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";
}
?>