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:

Yaslaw

n/a
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);
 };
 

Basti_2015

Mitglied
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…