PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Entwicklung und Softwaredesign (http://www.selfphp.de/forum/forumdisplay.php?f=14)
-   -   Lambada funktion parameter übergabe funktioniert nicht (http://www.selfphp.de/forum/showthread.php?t=24011)

R4Zz0R 12.02.2011 16:27:22

Lambda funktion parameter übergabe funktioniert nicht
 
Hi leute ..

Ich hab mich damit beschäftigt (aufgrund dessen das es echt einfacher ist) wie ich normale funktionsaufrufe nicht mehr benötige.

Also mein bisheriger ansatz, funktioniert mit funktionenen die keine parameter benötigen wunderbar.
Aber jetzt fängt es bei mir an das ich natürlich auch funktionen aufrufen mächte die parameter benötigen.

Mein bisheriger code:
PHP-Code:

 function funkControler($getarr,$touse) {
  
//seite zuweisen
  
$funkt $getarr['do'];
  
$fparam $getarr['fpa'];
  if(isset(
$funkt)) {
    if(!empty(
$fparam)) {
      
$run $touse[$funkt]($fparam);
   } else {
     
$run $touse[$funkt]();
   }
  }
 return 
$run;

 } 

Ist leider nicht dafür ausgelegt auch funktionen mit parametern aufzurufen.

Jetzt blicke ich natürlich erstmal nicht mehr durch und wollte mal hören was ich da verwenden kann.

LG
R4Zz0R

DokuLeseHemmung 12.02.2011 17:34:57

AW: Lambada funktion parameter übergabe funktioniert nicht
 
Schon wieder alles vergessen?

Zitat:

call_user_func_array
Aus: http://www.selfphp.de/forum/showpost...1&postcount=25

;-) ;-) ;-) ;-) ;-) ;-) ;-)

R4Zz0R 12.02.2011 17:38:14

AW: Lambada funktion parameter übergabe funktioniert nicht
 
Zitat:

Zitat von DokuLeseHemmung (Beitrag 140283)
Schon wieder alles vergessen?


Aus: http://www.selfphp.de/forum/showpost...1&postcount=25

;-) ;-) ;-) ;-) ;-) ;-) ;-)

Öhhm.... nein!
Schön und gut aber dabei bekomme ich eine fehlermeldung!

Warning: call_user_func_array() expects parameter 2 to be array, string given on line 13

DokuLeseHemmung 12.02.2011 18:06:45

AW: Lambada funktion parameter übergabe funktioniert nicht
 
Tipp:
1. Fehlermeldung lesen
2. Das Handbuch zu call_user_func_array() befragen

R4Zz0R 12.02.2011 18:24:04

AW: Lambada funktion parameter übergabe funktioniert nicht
 
Fehlermeldung gelesen ... Handbuch befragt -> immernoch ratlos... was soll ich den machen wenn ich nur ein argument habe und net nen ganzes array voll?...

Kann ja schlecht eins "emulieren"...

Und call_user_func ist leider keine alternative da es nichts zurückgibt...

LG
R4Zz0R

vt1816 12.02.2011 18:36:55

AW: Lambada funktion parameter übergabe funktioniert nicht
 
Vlt. den STRING mal als ARRAY übergeben?

DokuLeseHemmung 12.02.2011 18:42:51

AW: Lambada funktion parameter übergabe funktioniert nicht
 
Zitat:

Und call_user_func ist leider keine alternative da es nichts zurückgibt...
Falsch!

Dann lese ich dir mal das Handbuch vor.....
Quelle:
http://de3.php.net/manual/de/functio...func-array.php
http://de3.php.net/manual/de/functio...-user-func.php

Zitat:

Rückgabewerte
Returns the function result, or FALSE on error.
Zitat:

param_arr
The parameters to be passed to the function, as an indexed array.
Trim Beispiel:
PHP-Code:

// also so:
echo call_user_func_array('trim',array('--------Ein Wort!--------','-')); 

PHP-Code:

// oder so:
echo call_user_func('trim','--------Ein Wort!--------','-');



R4Zz0R 12.02.2011 19:03:20

AW: Lambada funktion parameter übergabe funktioniert nicht
 
Dan erklär mir doch bitte warum die funktion die ich versuche aufzurufen:
PHP-Code:

function userView($user) {

  global 
$con;

  
$sql "SELECT * FROM user WHERE user LIKE `$user`";
  
$qry mysql_query($sql);
  while (
$overview mysql_fetch_assoc($qry)) {
  
$userinfo=$overview;
  }
 return 
$userinfo;


Anstelle des arrays mit den informationen plötzlich NULL zurück gibt !
Aber wenn ich diese funktion mit einem herkörmlichen aufruf benutze mein array mit den informationen problemlos ausliefert!

Momentan sieht es folgendermaßen aus ich habe es schon probiert diesen einen parameter als array zu übergeben.

PHP-Code:

 function funkControler($getarr,$touse) {
  
//seite zuweisen
  
$funkt $getarr['do'];
  
$fparam = array($getarr['fpa'],'');
  if(isset(
$funkt)) {
    if(!empty(
$fparam)) {
      
$run =call_user_func_array($touse[$funkt],$fparam);
   } else {
     
$run $touse[$funkt]();
   }
  }
 return 
$run;

 } 

Doch ohne erfolg.

Und nun wüsste ich gerne mal was ich falsch mache weil ähhm... ich sehe den feher gerade nicht.
Auch mit call_user_func bekomme ich nichts zurück als NULL ... aber keine fehlermeldung.

Die übergebenen daten sind korrekt und kommen in der funktion an.

lg
R4Zz0R

DokuLeseHemmung 12.02.2011 19:20:45

AW: Lambada funktion parameter übergabe funktioniert nicht
 
PHP-Code:

function userView($user
{
 return 
"42-$user-42";




 function 
funkControler() 
 {
  
$funkt 'userView';
  
$fparam = array('Willi');
  
$run =call_user_func_array($funkt,$fparam);
  return 
$run;
 } 
 
echo  
funkControler() ; 

Damit wäre geklärt, dass das grundsätzlich so funktioniert.

R4Zz0R 12.02.2011 19:32:06

AW: Lambada funktion parameter übergabe funktioniert nicht
 
hmm gut das bezweifel ich auch nicht.

Es geht nur darum das ich ja gerne alle möglichen variablen verwenden können würde.

Dementsprechend müsste der inhalt des array auch variabel sein (also veränderbar)

ratschläge ? ideen?...

lg
R4Zz0R


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:46:02 Uhr.

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