2016-05-21 11 views
1

Ich möchte PHP-Schnittstelle wie Java-Schnittstelle verwenden. Wie funktioniert das in PHP?PHP Interface-Klasse in Funktion Argumente

Android (Java):

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

Ich möchte PHP:

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

IInstaller ist eine Schnittstelle:

interface IInstaller 
{ 
    public function onError(); 
} 

Antwort

1

Es scheint PHP7 Unterstützung für diese hat. 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; 
} 

Mit PHP5 das Beste, was Sie tun können, ist das Verhalten mimick Verschlüsse mit: http://www.clock.co.uk/blog/mimicking-anonymous-classes-in-php-using-closures

+0

Es ist OK. Vielen Dank. – ABP

+0

Was bedeuten 10 in "neue Klasse (10)"? – ABP

+0

10 ist der Konstruktorwert. Wenn Sie also einen leeren Konstruktor haben, können Sie das weglassen –