Peter Rehm's Blog

apple,development,life & more

PHP5/PHP5 method_exists

Ohne Kommentare

Wenn mann dynamisch Methoden aus einer Klasse aufrufen möchte, kommt man
vermutlich an method_exists() kaum vorbei.

Heute musste ich allerdings feststellen, dass PHP4 alle Klassennamen im lowercase überprüft,
PHP5 hingegen so wie es geschrieben wurde. Dies führte natürlich in meinem aktuellen Projekt
zu massiven Schwierigkeiten.

Es bleibt kaum eine andere Lösung, als sich selber eine lowercase Version von method_exists anzufertigen.
Die könnte wie folgt aussehen.

CODE:
function _method_exists($class,$method)
{
$classMethods = array_map('strtolower', get_class_methods($class));

if(in_array(strtolower($method),$classMethods))
{
return true;
} else {
return false;
}
}


Das hab ich dann implementiert, und seither funktioniert alles so wie man es verwenden sollte.

Achja und wenn wir gerade beim Thema sind, man wird auch schnell feststellen, dass
call_user_method deprecated ist und daher nicht mehr eingesetzt werden sollte.
Zumindest laut meiner PHP4 version, im Manual konnte ich dazu nicht viel finden.

Dies kann man aus dem Weg schaffen, indem man call_user_func() oder call_user_func_array()
mit folgenden Parametern aufruft.

CODE:
call_user_func(array(&$object,'my_method_name'));

Geschrieben von Peter Rehm

31.03.2007 um 19:02:11

Abgelegt in PHP

0 Trackbacks zu PHP5/PHP5 method_exists

Trackback-URL für diesen Eintrag

  1. Keine Trackbacks

0 Kommentare zu PHP5/PHP5 method_exists

  1. Noch keine Kommentare

Kommentar schreiben

BBCode-Formatierung erlaubt
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

Kommentare werden erst nach redaktioneller Prüfung freigeschaltet!