2017-01-26 5 views
3
function updateParameters($landing) 
{ 
    $addValue = function ($final,$parametername,$value) 
    { 
     $value1=str_replace ( '{landing}' , $landing ,$value); 
     $_GET[$parametername]=$value1; 
     return ""; 
    }; 

    doSomethingWith20Params($addValue, "") ; 
} 

Grundsätzlich ist $addValue eine Funktion. Die Parameternummer kann nicht geändert werden. Das liegt daran, dass eine Funktion mit 3 Parametern benötigt.Wie eine Variable in einem Verschluss für PHP einfügen?

In PHP habe ich

5 446.6299 486504 doSomethingWith20Params(???, ???, ???) ...\cutoolsgeneral.php:204 
6 552.2776 487112 {closure:H:\business\shared\Dropbox\htdocs\tools2\cutoolsgeneral.php:197-202}(???, ???, ???) ...\cutoolsgeneral.php:188 
+0

Warum können Sie nicht die Anzahl der Parameter ändern? Zuerst definieren Sie es selbst und zweitens können Sie eine Funktion mit dynamischer Anzahl von Parametern erstellen. Oder Sie können die 'use' -Notation verwenden, wenn dieser dritte Parameter eine feste Sache ist. – arkascha

Antwort

4

einfach das use Schlüsselwort verwenden, binden Vars zu Ihrer Schließung

function updateParameters($landing) 
{ 
    $addValue = function ($final,$parametername,$value) use ($landing) 
    { 
     $value1=str_replace ( '{landing}' , $landing ,$value); 
     $_GET[$parametername]=$value1; 
     return ""; 
    }; 

    doSomethingWith20Params($addValue, "") ; 
} 
+0

FANTASTISCHEN !!!!!!!!!!!! BEEINDRUCKEND. So wenig Veränderung. Vielen Dank. Genial –

Verwandte Themen