oop,php,扩展类,在调用类中的特定方法时运行函数

时间:2013-04-06 14:21:23

标签: php oop extending

首先,我对oop等几乎是一个noobie,所以请善待。

我确实阅读了很多手册,但不知何故迷失在所有的东西中,找不到答案:( 所以任何提示,链接等都将非常感激

无论如何,我发现自己处于一种情况,我需要在执行类中的特定方法时调用函数。但是,我无法触及课程本身。

要证明,这个类是这样的:

/* icannot touch this class*/
class Bar extends Foo {
/*some other methods and variables here, omitted for sanity reasons**/

function DBSave(){      

    $this->cat_parent = intval($this->cat_parent);
    $this->cat_num_files = intval($this->cat_num_files);

    return parent::DBSave();
}

/*some more methods omitted for sanity reasons**/
}
/*end of class*/

/ ** 修改 *** /

根据下面的评论,我写了/添加了以下内容,但它并没有按照我希望的方式做事:(

class Baz extends Bar {
    public function DBSave() {
        /*here I want to use $this->cat_parent etc to do something with*/
        parent::DBSave();
    }
}
/*this is probably also wrong, but I tried with the following results*/
$b = new Baz();/*just adding this does nothing*/
$b->DBSave();/* when this is added as well it *always* runs regrdless of whether bar->foo is called*/

还 - 我忘了提,对不起 - Baz中的方法需要变量($ this-> cat_parent等)来做一些明智的事情 希望上面有道理......?

/ ** 编辑结束 * ** /

每当DBSave被调用时,我想运行另一个函数,但我不知道如何去做:( 我尝试了一些扩展课程的东西,但它只是出错了或者一直调用它等等......任何提示都会非常感激

当然,如果需要,我们很乐意扩大这个问题

感谢

1 个答案:

答案 0 :(得分:1)

最简单的方法可能是:

class Baz extends Bar {
    public function DBSave() {
        parent::DBSave();
    }
}

您可以在该方法的正文中定义其他功能。