Класс интерфейса PHP в аргументах функции

Я хочу использовать интерфейс PHP, как интерфейс Java.
Как я делаю эту работу в PHP?

Android (Java):

btnDownload.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//---------------------------------
}
});

Я хочу в PHP:

$installer->setOnInstallerListener(new IInstaller(){
function onError()
{
echo 'OK';
}
});

IInstaller — это интерфейс:

interface IInstaller
{
public function onError();
}

1

Решение

Кажется, PHP7 имеет поддержку для этого. http://php.net/manual/en/language.oop5.anonymous.php

new class(10) extends SomeClass implements SomeInterface {
private $num;

public function __construct($num)
{
$this->num = $num;
}

use SomeTrait;
}

В PHP5 лучшее, что вы можете сделать, это имитировать поведение с помощью замыканий: http://www.clock.co.uk/blog/mimicking-anonymous-classes-in-php-using-closures

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]