2013-12-20 3 views
0

Я пытаюсь получить доступ к свойству родительского класса из дочернего класса, я объявил родительского класса, колледж детского класса и сделал объект Рам колледжа .Это дает ошибку помощь пожалуйста:Как просто получить доступ к свойству родительского класса из дочернего класса, создав объект дочернего класса

class Person 
{ 
    public $name="My name is Ram Singh."; 

    } 

class college extends Person 
{ 
    function __construct() 
    { 
    echo"Hello college constructor"; 
    } 

    var $message=$this->name ;  
} 


$Ram = new college; 
echo $Ram->message; 
echo $Ram->name; 
+0

У вас есть ошибки? –

ответ

1

Должно работать. он проверен :)

class Person 
    { 
     public $name="My name is Ram Singh."; 

     } 

    class college extends Person 
    { 
    public $message; 
     function __construct() 
     { 
     echo"Hello college constructor"; 
     $this->message=$this->name ; 
     } 


    } 


    $Ram = new college; 
    echo $Ram->message; 
    echo $Ram->name; 
0

Ваша переменная $message объявлена ​​как var, вы должны объявить его как public иметь доступ извне класса.

Лучшего подход, чтобы сделать член класса protected и затем код аксессоров в getName(), getMessage()

3

Вы должны поместить любые присвоения переменных внутри методов. вы не можете сделать это на уровне класса.

class Person 
{ 
    public $name="My name is Ram Singh."; 

    } 

class college extends Person 
{ 
    public $message = ''; 
    public function __construct() 
    { 
    echo"Hello college constructor"; 
    $message=$this->name ;  
    } 


} 


$Ram = new college; 
echo $Ram->message; 
echo $Ram->name; 

?> 
+0

+1. Вы не можете иметь выражение как значение по умолчанию для поля, которое хорошо видно. – Gavin

Смежные вопросы