将方法添加到现有的 class 中,无需太多更改
Adding methods to existing class without much changes
我需要将新方法包含到现有的 class 中,而不会在 class 内部进行太多更改。我不知道该怎么做。因为我不能使用例如 include_once('mynew.class.php')
然后在里面写我所有的新代码,所以我尝试了以下并且它有效。
我可以在 B 中添加新方法,它们是 A 的进程,正如我所希望的那样。
class A extends B {
"the existing code"
}
class B {
"my new code"
}
我认为这不是正确的方式,因为在这种情况下,B 应该有主要逻辑,A 应该得到新代码,对吧?
我现在不知道如何在 class 中模拟类似 include
的东西。
当然我可以在现有的 A 中编写我的新函数而不继承,但在这种情况下我想按照我解释的那样做,几乎不接触现有的文件。
有什么建议吗?希望有人能理解这个问题。
谢谢
尝试使用 Trait。它基本上允许您在 class.
中重用(或在您的情况下包含)函数
代码示例
<?php
trait SayHello {
public function sayHello() {
echo 'Hello';
}
}
class Base {
use SayHello;
}
$o = new Base();
$o->sayHello();
?>
我需要将新方法包含到现有的 class 中,而不会在 class 内部进行太多更改。我不知道该怎么做。因为我不能使用例如 include_once('mynew.class.php')
然后在里面写我所有的新代码,所以我尝试了以下并且它有效。
我可以在 B 中添加新方法,它们是 A 的进程,正如我所希望的那样。
class A extends B {
"the existing code"
}
class B {
"my new code"
}
我认为这不是正确的方式,因为在这种情况下,B 应该有主要逻辑,A 应该得到新代码,对吧?
我现在不知道如何在 class 中模拟类似 include
的东西。
当然我可以在现有的 A 中编写我的新函数而不继承,但在这种情况下我想按照我解释的那样做,几乎不接触现有的文件。
有什么建议吗?希望有人能理解这个问题。
谢谢
尝试使用 Trait。它基本上允许您在 class.
中重用(或在您的情况下包含)函数代码示例
<?php
trait SayHello {
public function sayHello() {
echo 'Hello';
}
}
class Base {
use SayHello;
}
$o = new Base();
$o->sayHello();
?>