我有一个父对象“Person”,然后是一个子对象“Student”但是当我尝试测试出来的孩子“test_Student.php”时,没有内部错误500但只是空白屏幕,任何想法为什么?我以为我应该在屏幕上至少有“乔治”。
以下是我遇到问题的代码。 Person.php:
class Person
{
protected $firstName;
protected $surName;
public function __construct(string $f, string $l){
$this->getFirstName($f);
$this->getSurName($l);
}
public function getFirstName(): string{
return $this->firstName;
}
public function setFirstName(string $value){
$this->firstName = $value;
}
public function getSurName(): string{
return $this->surName;
}
public function setSurName(string $value){
$this->surName = $value;
}
}
Student.php
class Student extends Person
{
protected $studentID;
public function __construct(int $i,string $f, string $l)
{
parent::__construct($f,$l);
$this->studentID = $i;
}
public function getStudentInfo(): string
{
return "Student Info: ".$this->studentID;
}
}
test_Student.php:
<?php
require("Student.php");
try
{
$stud = new Student(1,"George","Orwell");
echo $stud->getFirstName();
}
catch(Exception $e)
{
echo "v5: ".$e->getMessage();
}
catch(Error $e)
{
echo "v7: ".$e->getMessage();
}
?>
非常感谢!
答案 0 :(得分:0)
类Person
的构造函数是调用getter而不是setter。将其更改为:
public function __construct(string $f, string $l){
$this->setFirstName($f);
$this->setSurName($l);
}
这是否是唯一的问题,我不确定(例如Student
可能由于未事先加载Person.php
而无法实例化。您应该检查错误日志以查看其中的内容,因为这将为您提供有关问题的信息。您可以通过在error_log
文件和/或php.ini
文件中查找文本.htaccess
来查找错误日志位置。此外,您可以检查代码是否有对ini_set("error_log", "/path/to/error.log");