2014-12-29 2 views
1
.

. Опознания, если это дубликат, не могли ни искать правильные слова, ни вообще не существовать (каким-то образом я сомневаюсь в этом и, вероятно, допущу очевидную ошибку).Нечетное наследование. Проблема с PHP.

<?php 

class Test { 
    public $var = true; 

    public function test() { 
     var_dump($this->var); 
    } 
} 

class Testing extends Test { 
    public $var = false; 
} 

$test = new Testing(); 
$test->test(); 

Простая программа, базовый класс, метод, наследующий класс с переопределением, а затем вызов базового метода.

дает выход, False, линия возврата Ложные,

Что? Почему дважды? Именно мой вопрос хороший человек.

bool(false) 
bool(false) 

Благодаря

+2

может быть методом 'test', используемым как конструктор' php4', потому что он имеет то же имя с классом ... –

+0

Это правильно, до. –

+0

Если хотите, ответьте официально и больно. –

ответ

2

Это произошло потому, что ваше имя метода же с именем класса.
Методы, подобные этому, использовались в качестве конструктора классов в PHP4 - php.net
Они по-прежнему работают, если у вас нет метода __construct.

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