Archiv verlassen und diese Seite im Standarddesign anzeigen : Herausfinden, ob eine statische Klasse ein Interface implementiert?
Gibt es in PHP eine Möglichkeit, herauszufinden, ob eine statische Klasse ein bestimmtes Interface implementiert? instanceof arbeitet ja nur auf objekten und ein function_exists('Klasse::funktion') (was mir eigentlich reichen würde) funktioniert auch nicht.
Romanday
06-03-2007, 00:04
Gibt es in PHP eine Möglichkeit, herauszufinden, ob eine statische Klasse ein bestimmtes Interface implementiert? instanceof arbeitet ja nur auf objekten und ein function_exists('Klasse::funktion') (was mir eigentlich reichen würde) funktioniert auch nicht.
Wie wärs mit get_declared_interfaces() oder interface_exists()?
http://www.php.net/manual/en/function.get-declared-interfaces.php
Unter PHP4 kannst Du auch method_exists() nehmen.
ne. das geht leider beides nicht. get_declared_interfaces gibt mir ja nur ne liste aller interfaces zurück, aber sagt nichts darüber aus, ob eine klasse ein bestimmtes interface auch wirklich implementiert.
und method_exists() arbietet auch nur auf objekten, aber nicht direkt auf klassen.
hier ein beispiel von meinem problem:
interface Fooable {
public static function getFoo();
}
class Bar implements Fooable {
public static function getFoo() {
return 'Foo';
}
}
// Vor folgendem Funktionsaufruf möchte ich gern sichergehen, dass "Bar"
// "Fooable" implementiert:
$var = Bar::getFoo();
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.