2014-05-23 3 views
0

Я пытаюсь стать более компетентным с php. У меня вопрос о родительских классах. В приведенном ниже коде есть способ вызвать функцию foobar() из класса a в пределах экземпляра $b. БлагодаряДоступ к родительской функции в расширенном классе

<?php 
    class foo { 
    function callFooBar(){$this->foobar();} 
    function foobar(){echo('foobar of foo');} 
    } 
    class bar extends foo { 
    function foobar(){echo('foobar of bar');} 
    } 
    $b=new bar; 
    $b->foobar(); 
    echo("<br>"); 
    $b->callFooBar(); 
?> 
+0

Вы имеете в виду поздно статическую привязку? 'function callFooBar() {static :: foobar();}' –

+0

Я не знаком с этой терминологией. Я хотел бы использовать '$ b-> something-> foobar();' и получить «foobar foo». Я знаю, что могу использовать «$ f = new foo;» но есть ли способ сделать это от «$ b» – demuro1

ответ

2

Если вы хотите вызвать метод из самого класса, вы можете использовать self:

function callFooBar(){self::foobar();} 

example.

Используя $this или static, вы получите те же результаты дважды.

Если вы хотите сделать это из метода в классе bar, вы должны использовать parent

+0

спасибо, что объясняет многое. – demuro1

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