将方法添加到现有类而无需太多更改

时间:2017-03-30 23:15:12

标签: php oop include extends

我需要在现有类中包含新方法,而不会在该类中更改太多内容。我不知道该怎么做。因为我不能使用例如include_once('mynew.class.php')然后在里面写下我所有的新代码,所以我尝试了以下内容并且它可以工作。

我可以在B中添加新方法,它们是我想要的A进程。

class A extends B {
"the existing code"
}
class B {
 "my new code"
}

我认为这不是正确的方法,因为在这种情况下B应该有主要逻辑而A应该得到新代码,对吗?

我现在不知道如何在类中模拟像include这样的东西。

当然我可以在没有继承的情况下在现有的A中编写我的新函数,但在这种情况下我想按照我的解释做,并且几乎不接触现有文件。

有什么建议吗?希望有人理解这个问题。

由于

1 个答案:

答案 0 :(得分:2)

尝试使用Trait。它基本上允许您在类中重用(或包含在您的情况下)函数。

代码示例

<?php
trait SayHello {
   public function sayHello() {
       echo 'Hello';
   }
}

class Base {
    use SayHello;
}

$o = new Base();
$o->sayHello();
?>