Я бы хотел вызвать статическую функцию класса A в классе B, передав ее через Start.php в качестве параметра, но без включения ClassA.php в ClassB.php.PHP статическая функция как параметр с впрыском зависимостей
Причина, по которой я хочу это сделать, состоит в том, что у меня есть какая-то конкретная клиентская логика, которую я хочу разделить и позвонить по центру и только тогда, когда мне это действительно нужно (index.php), не включая ее в другие файлы.
Предположим, у меня 3 файла.
Start.php, ClassA.php, ClassB.php
ClassA.php
class A {
public static function foo($param) {
// do some special logic
// and return either true or false
}
}
ClassB.php
class B {
function bar($var, $func) {
foreach($var as $v) {
if($func($var)) {
echo 'OK';
}
}
}
}
Start.php
require_once('ClassA.php');
require_once('ClassB.php');
class Start() {
function init() {
$b = new B();
$test = array(1,2,3,4,5);
$b->bar($test, ['A', 'foo']);
}
}
Start::init();
Итак, Start зависит от ClassA и ClassB, это нормально.
Но я не хочу, чтобы ClassB зависел от ClassA.
Когда я делаю это так, я получаю ошибку, говоря, что класс А не найден.
Возможно ли это? Это даже считается хорошей практикой?
«Но я не хочу ClassB зависеть от ClassA.» Однако, если вы используете ClassA в ClassB, ClassB зависит от ClassA. – n00dl3
Используя автозагрузку, вы можете загружать свои классы по требованию. – n00dl3
Возможно, вы можете реализовать это с помощью интерфейсов. – AmazingDreams