2010-04-05 47 views
0

說我有這個類:PHP類擴展 - 運行父函數之前運行的東西

class animal { 
    function noise() { 
     print 'woof'; 
    } 
    function move() { 
     print 'moved'; 
    } 
} 

class dog extends animal { 

} 

我想要做的是,當我運行$ dog->噪聲()或$ dog->移動( ),它會在調用動物類的噪音/移動之前先運行某些東西。這是可行的嗎?就像可能記錄函數調用一樣。如果不是擴展類,我還可以用什麼來實現這個目標?

謝謝!

回答

3

是 - 使用parent關鍵字:

http://php.net/manual/en/keyword.parent.php

class dog extends animal { 

    function move() { 
     print 'a dog...'; 
     parent::move(); 
    } 

} 

調用上dogmove()方法現在將導致印刷 「一隻狗......」,然後選擇 「移動」。

4
class dog extends animal 
{ 
    function noise() 
    { 
     /* do stuff here */ 

     parent::noise(); 
    } 
}