2012-12-15 3 views
0

Я искал для этого довольно долгое время. Я думаю, что мне не хватает какой-то большой концепции, но я не могу понять, почему это не будет работатьВопрос о наследовании PHP

//SomeClass.php

class SomeClass 
{ 
    protected $something; 
    public function __construct() { 
     $this->something = 'password'; 
    } 
    public function test() { 
     return ($this->something); 
    } 
} 

//OtherClass.php

require_once('SomeClass.php'); 
class OtherClass extends SomeClass 
{ 
    public function __construct() { 
     echo parent::test(); 
    } 
} 

Какая сделка здесь?

+0

Какая ваша ошибка? –

+0

Он просто ничего не выводит. Я бы подумал, что он должен выводить «пароль» –

ответ

6

Вы должны вызвать parent :: __ construct() перед вызовом parent :: test()

+1

Справа. Ручная выдержка: 'Примечание. Родительские конструкторы не называются неявно, если дочерний класс определяет конструктор. Чтобы запустить родительский конструктор, требуется вызов parent :: __ construct() внутри дочернего конструктора. –

+0

ARGH !!!!!!! Благодаря тонну! Вы чемпион. Будьте здоровы. Я действительно должен лучше читать руководство, но это слишком скучно. –

0

Конструктор не должен возвращать какое-либо значение.

+0

Не актуально после редактирования вопроса. –

+0

Я, извините, это была опечатка. Я обновил ответ, и он все еще не работает. –

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