class User{
public $company_name;
}
class Employer extends User{
public $fname;
public $sname;
}
这是我创建的test.php。我已经包含了类文件。
$employer = new Employer();
$user = new User();
$employer->company_name = "Company name is ";
echo $user->company_name;
当我打印名称没有任何反应时,请让我知道我的代码有什么问题。
答案 0 :(得分:15)
您的Employer
课程扩展了User
课程,但在您创建$user
和$employer
个对象时,它们是独立的实体且不相关。
想象你的对象:
$employer = new Employer();
// You now have $employer object with the following properties:
// $employer->company_name;
// $employer->fname;
// $employer->sname;
$user = new User();
// You now have $user object with the following properties:
// $user->company_name;
$employer->company_name = "Company name is ";
// You now have $employer object with the following properties:
// $employer->company_name = 'Company name is ';
// $employer->fname;
// $employer->sname;
echo $user->company_name;
// You currently have $user object with the following properties:
// $user->company_name; /* no value to echo! */
如果要使用继承的属性,它的工作方式更像:
class User{
public $company_name;
function PrintCompanyName(){
echo 'My company name is ' . $this->company_name;
}
}
class Employer extends User{
public $fname;
public $sname;
}
$employer = new Employer();
$employer->company_name = 'Rasta Pasta';
$employer->PrintCompanyName(); //echoes 'My company name is Rasta Pasta.'
答案 1 :(得分:4)
请勿将您的变量$user
和$employer
与类混淆。 $user
是User类的实例,$employer
是Employer类的实例,但它们是单独的变量。
答案 2 :(得分:3)
您从未设置$user->company_name
。
echo $employer->company_name;
答案 3 :(得分:3)
您没有为对象$ user的$company_name
分配内容;只有$雇主。
答案 4 :(得分:2)
你必须回应
$employer->company_name;
或设置
$user->company_name
达到某种价值。
您不必创建父类的实例来使用子类。在这种情况下,$雇主从User类继承company_name。