Ich habe ein Beispiel für eine Zahlungsverbindung heruntergeladen. Nein, ich versuche, es zu verwenden, aber der Konstruktor möchte die Schnittstelle erhalten, wenn ich ClassName deklariere Aber ich habe keine Ahnung, wie das geht. Ich versuchteSchnittstelle zum Konstruktor senden PHP
$interface = CallbackInterface::class;
$interface = CallbackInterface();
$interface = CallbackInterface;
Und viele mehr, aber ich kann es nicht herausfinden. Ich weiß nur, dass ich eine Schnittstelle zu einer Klasse implementieren soll. Vielleicht eine noob Frage, aber ich habe fast einen Tag ohne Erfolg gesucht.
$config = new Config('string1', 'string2');
$pay = new ClassName($config, $interface);
interface CallbackInterface
{
public function Key($sIdentifier, $sTransactionKey);
public function tSuccess($sTransactionKey);
}
class ClassName
{
public function __construct(Config $oConfig, CallbackInterface $oCallbacks)
{
$this->oConfig = $oConfig;
$this->oCallbacks = $oCallbacks;
}
}
Sie sind! ;-) "Das einzige, was ich weiß, ist eine Schnittstelle mit einer Klasse zu implementieren". Die Benutzeroberfläche ist nicht zur Instanziierung vorgesehen. Siehe https://stackoverflow.com/questions/8552505/when-to-use-interfaces-in-php oder https://stackoverflow.com/questions/1814821/interface-or-an-abstract-class-whichone oder verwenden Sie https://stackoverflow.com/questions/20463/what-is-the-point-of-interfaces-in-php für weitere Informationen –
Ist die Datei mit der Schnittstelle enthalten, was meinst du mit ' Konstruktor möchte die Schnittstelle bekommen. – ArtisticPhoenix
Ja, Sie müssen die Schnittstelle in einer Klasse implementieren und eine Instanz dieser Klasse an den Konstruktor übergeben. Das bedeutet ein Schnittstellenhinweis: * Ich erwarte ein Objekt, das dieser Schnittstelle entspricht. * Es will nicht * die Schnittstelle *, sondern ein Objekt mit dieser Schnittstelle. – deceze