我正在研究PHP继承(刚刚开始学习PHP)。我发现当使用子类对象访问时,基类方法不显示属性的值。我的代码看起来像这样。
<?php
class Base
{
public $pr1;
public $pr2;
function __construct()
{
print "In Base class<br>";
}
public function setPropertie($pr1,$pr2)
{
$this->$pr1=$pr1;
$this->$pr2=$pr2;
}
public function display(){
echo "propertie1".$this->pr1."<br>";
echo "propertie2".$this->pr2."<br>";
}
function __destruct()
{
print "Destroying Baseclass<br>";
}
}
class Child extends Base
{
function __construct()
{
parent::__construct();
print "In Subclass<br>";
}
function __destruct()
{
print "Destroying Subclass<br>";
}
}
$obj=new Child();
$obj->setPropertie('Abhijith',22);
$obj->display();
?>
我找不到代码中的问题。如何解决这个问题?
答案 0 :(得分:1)
您在setPropertie()
方法中错误地访问了属性。从$
和$pr1
属性中删除$pr2
以访问它们
错误的方式
$this->$pr1=$pr1;
$this->$pr2=$pr2;
正确的方式
$this->pr1=$pr1;
$this->pr2=$pr2;