Трудно дать совет о том, какой будет наилучший подход для вашего конкретного случая, так как мы не знаем, что делает A
или B
.
Есть несколько способов достичьэтот.Одним из способов было бы сделать B и расширение A - тем самым позволяя всем методам класса A
быть вызываемыми для объекта B
.Другой способ - создать новый объект A внутри B и вызвать этот метод.Или вы можете передать
Вот пример, где B расширяется от A. При этом все свойства и методы A
можно вызывать для B
, если они не перезаписаны в B
.
class A {
public function doSomething(){
echo "doSomething() called in A";
}
}
class B extends A {
public function someMethod() {
$this->doSomething();
}
}
$b = new B();
$b->someMethod();
Приведенное выше вывело бы doSomething() called in A
.
Или вы можете создать объект A
и вызвать этот метод внутри B
.
class B {
public function someMethod() {
$a = new A();
$a->do_something();
}
}
$b = new B();
$b->someMethod();