php类extend - 在运行父函数之前运行一些东西

时间:2010-04-05 02:31:55

标签: php

说我有这个课程:

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

class dog extends animal {

}

我想要做的是当我运行$ dog-> noise()或$ dog-> move()时,它会在调用动物类的噪音/移动之前先运行一些东西。这可行吗?就像记录函数调用一样。如果没有类扩展,我可以用什么来实现这个目标?

谢谢!

2 个答案:

答案 0 :(得分:4)

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

        parent::noise();
    }
}

答案 1 :(得分:3)

是 - 使用parent关键字:

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

class dog extends animal {

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

}

move()上调用dog方法现在会导致打印“狗......”然后“移动”。