2015-10-30 5 views
0

Я работаю над наследованием PHP (только что начал leraning 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

Неправильный доступ к недвижимости внутри метода setPropertie(). Удалить $ с обеих $pr1 и $pr2 собственности для доступа к ним

Неправильный путь

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

Правильный путь

$this->pr1=$pr1; 
$this->pr2=$pr2; 
Смежные вопросы