基类功能不显示属性

时间:2015-10-30 05:48:15

标签: php inheritance

我正在研究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();
?>

我找不到代码中的问题。如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您在setPropertie()方法中错误地访问了属性。从$$pr1属性中删除$pr2以访问它们

错误的方式

$this->$pr1=$pr1;
$this->$pr2=$pr2;

正确的方式

$this->pr1=$pr1;
$this->pr2=$pr2;