create_function deprecated umwandeln in eine anonyme Funktion

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Basti_2015

Mitglied
Hallo,

ich versuche diese Funktion
PHP:
function wpfb_callback($cl, $fnc)
 {
        return create_function('', '$p=func_get_args();return wpfb_call("' . $cl . '","' . $fnc . '",$p,true);');
    }

umzubauen, und zwar so
PHP:
function wpfb_callback($cl, $fnc)
{
    return function() { $p=func_get_args(); return wpfb_call("' . $cl . '","' . $fnc . '",$p,true); };
}


nur leider kommen mit der Methode manchmal leere Variablen an. Was ich nicht verstehe. Nun versuche ich diese Funktion in eine anonyme Funktion umzubauen.
PHP:
function wpfb_callback($cl,$fnc)
    {
        $funzz = function($cl,$fnc) {
            $p=func_get_args();
            return wpfb_call("' . $cl . '","' . $fnc . '",$p,true);
        };
        $funzz($cl, $fnc);
    }
doch da steigt er leider total aus.
Kann mir jemand die Richtung zeigen?

php version 7.4
 
Zuletzt bearbeitet von einem Moderator:
In deiner Funktion hast du ein Chaos von ' und ". Aber das solltest du da eh nicht brauchen
Wenn du Variablen von Ausserhalb nehmen willst, dann solltest du diese gem Ableitung mit use einbinden.
PHP:
return function() use($cl, $fnc){
     $p=func_get_args(); 
     return wpfb_call($cl, $fnc, $p, true);
 };
 
Hallo Yaslaw,
dass mit den Hochkommatas stimmt, die Variablen müssen jedoch als String übergeben werden. Da sie Klassen und Funktionen einbinden.
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Zurück