Вызов функции в функции из другого класса PHP

Я прочитал несколько тем об абстрактном классе здесь, в Stackoverflow, и я думаю, что это то, что мне нужно, но я не могу понять объявление прямо.

Что я хочу сделать, так это вызвать функцию2 (в классе B) в функции1 (в классе A).

Как мне это сделать?


person Fredrik    schedule 07.12.2011    source источник
comment
Нужна дополнительная информация - есть ли у вас инициализированный экземпляр класса B в классе A?   -  person Pekka    schedule 07.12.2011
comment
Если вы не обращаетесь ни к каким элементам данных из этого класса, сделайте функцию static. Затем вы можете вызвать его, используя: MyClass::myFunction.   -  person Evan Mulawski    schedule 07.12.2011


Ответы (1)


Если вам нужно получить доступ только к методу ClassB из ClassA, но не нужны отношения родитель-потомок между ними, статический метод может быть более подходящим:

class ClassA
{
  public function method1() {
    echo ClassB::method2();
  }
}

class ClassB
{
  public static function method2() {
    return 'WOOT!';
  }
}

$cls_a = new ClassA();
$cls_a->method1();

// or alternatively, you don't even need to instantiate ClassA
echo ClassB::method2();
person rdlowrey    schedule 07.12.2011
comment
полезная информация. Спасибо за методы. - person Adsy2010; 28.11.2013
comment
Что делать, если класс находится в другом каталоге? - person Rafael; 21.07.2015
comment
из PHP 5.4 вы должны использовать (new ClassName)->method(); - person NineCattoRules; 28.04.2017