Я создал Person
класс, а затем расширил его до Student
класса. Когда я вызываю метод на объекте Student
, он работает не так, как ожидалось.Класс Inheritance не работает нормально в PHP
Вот мой код
class Person{
static public $IsAlive;
public $FirstName;
public $LastName;
public $Gender;
public $Age;
static public $total_person = 1;
static public $type;
function __construct($FirstName,$LastName,$Gender,$Age,$IsAlive,$type=""){
self::$IsAlive = $IsAlive;
if(self::$IsAlive === TRUE){
echo "<strong>Person Number#" . self::$total_person++ . "</strong> details are given below: <br />";
$this->FirstName = $FirstName;
$this->LastName = $LastName;
$this->Gender = $Gender;
$this->Age = $Age;
self::$type = $type;
}else{
echo "This Person is not longer available <br />";
}
}
function PersonDetail(){
if(self::$IsAlive === TRUE){
echo "Person Name: " . $this->FirstName . " " . $this->LastName . "<br />";
echo "Person Gender: " . $this->Gender . "<br />";
echo "Age: " . $this->Age;
}
}
}
class Student extends Person{
public $standard = "ABC";
public $subjects = "ABC";
public $fee = "123";
function StudentDetail(){
if(parent::$type === "Student"){
return parent::PersonDetail();
echo "Education Standard: " . $this->standard;
echo "Subjects: " . $this->subjects;
echo "Fee: " . $this->fee;
echo parent::$type;
}
}
}
$Hamza = new Student("Muhammad Hamza","Nisar","Male","22 years old",TRUE,"Student");
$Hamza->StudentDetail();
Это печать PersonDetail()
только, но не печатает полную информацию как стандарт образования, предметы и плата.
Вот мой выход
Person Number#1 details are given below:
Person Name: Muhammad Hamza Nisar
Person Gender: Male
Age: 22 years old
мне нужно, чтобы увидеть StudentDetail()
выход под ним, а также. Что случилось и как это исправить?
Можете ли вы попытаться установить return parent :: PersonDetail(); на последней строке функции StudentDetail() или удалить возврат? – dimis283