PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Entwicklung und Softwaredesign (http://www.selfphp.de/forum/forumdisplay.php?f=14)
-   -   Lambda Funktion weiterführung..(varialbe als parameter ($_POST -> $postarr) (http://www.selfphp.de/forum/showthread.php?t=24015)

R4Zz0R 16.02.2011 14:20:29

Lambda Funktion weiterführung..(varialbe als parameter ($_POST -> $postarr)
 
Hi leute ...

Alsooo..
In meinem vorherigen beitrag ging es ja um lambda funktionen.
Hier möchte ich nun meine erweiterung des codes ein wenig präsentieren (ungetestet) und gleich eines meiner probleme behandeln.

Meine ungetestete erweiterung bezieht sich darauf in der varialbe fpa zu prüfen ob sich dort ein komma befindet und es notfals in ein array umzuwandeln und eine funktion auch mit mehreren parametern aufzurufen.

Werde ich gleich erst testen daher hier mal der ungetestete code:

PHP-Code:

function funkControler($getarr,$touse) {
  
$funkt $getarr['do'];
  
$fparam $getarr['fpa'];
  
$fpaarr preg_match('/,/',$fparam,$match);
    if(!empty(
$match)) {
      
$fparam explode(',',$fparam);
        if(
is_array($fparam)) {
          
$run call_user_func_array($touse[$funkt],$fparam);
        }
    } else {
       if(isset(
$funkt)) {
         if(!empty(
$fparam)) {
           
$run call_user_func($touse[$funkt],$fparam);
         } else {
           
$run $touse[$funkt]();
         }
       }
    }
 return 
$run;


Nun aber was anderes ich habe funktionen die als übergabeparameter mein selbst erstelltes und gefiltertes array ($_POST wird zu $postarr) der post varialben benötigt.

wie kann ich den nun der funktion sagen das sie diese variable als parameter benutzen soll ? ...

Ich werde gleich meine idee mal überprüfen ob das funktioniert :(wäre aber echt umständlich daher hoffe ich auf bessere ideen.)

Pseudocode:
PHP-Code:

if($postarr['fpa'] == 'post') {
  
$fparam $postarr;


Vorschläge ?

LG
R4Zz0R

R4Zz0R 18.02.2011 13:21:46

AW: Lambda Funktion weiterführung..(varialbe als parameter ($_POST -> $postarr)
 
Also ..

Bisher funktioniert es grundsätzlich.
Ich hab das ganze jetzt aber ein wenig anders gestaltet.

PHP-Code:

function funkControler($getarr,$touse,$postarr) {
  
$funkt $getarr['do'];
  
$fparam $getarr['fpa'];
  if(
$fparam == 'post') {
      
$run call_user_func_array($touse[$funkt],$postarr);

  } else {
       if(isset(
$funkt)) {
         if(!empty(
$fparam)) {
           
$run call_user_func($touse[$funkt],$fparam);
         } else {
           
$run $touse[$funkt]();
         }
       }
    }
 return 
$run;


Innheralb dieser funktion steht $postarr immernoch als assoziatives arrray zur verfügung.
Aber in der aufgerufenen funktion nicht da verwandelt sich das array plotzlich in einen string und es ist nur der erste übergebene wert verfügbar und wenn ich versuche den inhalt des arrays über den index aufzurufen ($postarr['navname']) bekomme ich nur den ersten buchstaben ... hab ich da irgentwas übersehen ?

LG
R4Zz0R

R4Zz0R 18.02.2011 13:33:46

AW: Lambda Funktion weiterführung..(varialbe als parameter ($_POST -> $postarr)
 
Möööeppp ...

Ja erledigt ... ich übergebe ja das array als einzelne werte ...

aus $postarr wird ->
$postarr[0] = wert1 für funktion
$postarr[1] = wert2 für funktion

Och mensch kann ich blöd sein !


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:09:51 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.