Seite 1 von 1
Statische Klassenmethoden mit @-Operator aufrufen?
Verfasst: 16.04.2007 20:15
von S2B
Hallo,
eigentlich sagt der Titel schon alles: Ich möchte eine statische Klassenmethode mit dem @-Operator aufrufen, also die Fehler darin unterdrücken. Folgendes habe ich schon ausprobiert:
Habe ich da jetzt nur etwas übersehen oder ist das wirklich nicht so einfach?
Verfasst: 17.04.2007 14:55
von easygo
Nicht so einfach / versuchs mal mit eval() oder call_user_func() / als Beispiel
Code: Alles auswählen
$class = 'core';
$method = 'instance()';
$class::$method;
$return = call_user_func(array($class, $method));
Wichtig wär halt ein array als Name. easy
Verfasst: 17.04.2007 18:27
von S2B
Zuerst mal muss ich meinen ersten Beitrag korrigieren: Der gepostete Code lief ohne Probleme, nur gab es in meinem Fall Probleme, da die Funktion zusätzlich noch eine Referenz zurückgeben sollte, also so:
eval() dürfte daran auch nichts ändern, denn die Referenz brauche ich ja so oder so. Genausowenig hilft mir da call_user_func() weiter, da dort keine Referenz zurückgegeben werden kann. Sonst hätte ich gleich diese Funktion verwendet...
Ich werde mir jetzt wahrscheinlich mit einem zusätzlichen Parameter $no_errors der Methode instance() behelfen, da die Funktion selber sowieso keinen Fehler produzieren wird:
Code: Alles auswählen
public static function &instance($no_error)
{
static $instance;
if (!isset($instance))
{
$instance = ($no_error) ? @new core() : new core();
}
return $instance
}
Verfasst: 17.04.2007 18:51
von easygo
S2B hat geschrieben:eval() dürfte daran auch nichts ändern, denn die Referenz brauche ich ja so oder so. Genausowenig hilft mir da call_user_func() weiter, da dort keine Referenz zurückgegeben werden kann. Sonst hätte ich gleich diese Funktion verwendet...
Geht schon auch mit Übergabe eines Parameters (Referenz)
Aber keine Ursache btw.

easy