Array als einzelne Argumente übergeben
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
arbeiten
argument
array
bedienen
beispiel
code
diskutieren
entsprechende funktion
form
formulieren
frage
funktion
gelten
magische methode
problem
schauen
sinn
test
variables array
weile
-
Heyho, ich habe mal ne Frage:
Ich habe ein Array, zb in der Form:
$args = array( 'arg1' , 'arg2' , 'arg3' );
Und würde es gerne einer Funktion übergeben, die so aussieht:
function test( 'arg1' , 'arg2' , 'arg3' ) { ... }
Ich möchte jetzt über eine magische Methode die funktion Test aufrufen, das heißt, ich habe ein VARIABLES Array mit Argumenten (Sowohl von den namen als auch von der Länge! Ich möchte mit __call() arbeiten, und damit mehrere Funktionen bedienen) für passende, aber Variable Funktionen.
Ich hoffe ihr versteht das Problem, welches ich meine. Ist irgendwie doof zu formulieren. Ich hoffe es ist verständlich. ich kapiers einfach nicht, wie man das machen könnte.
Liebe Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Mal schauen ob ich dich richtig verstehe. Aber bei einer Funktion muss die Anzahl der übergebenen Argumente stimmig sein. Wieso übergibst du denn nicht einfach den Array und arbeitest innerhalb der Funktion damit?
function test ( $args ) { foreach ( $args as $value ) { echo $value ; } } $args = array( 'arg1' , 'arg2' , 'arg3', ... ) ; test ( $args ) ;
Beitrag zuletzt geändert: 9.2.2012 20:54:53 von bdsg -
Ich hab jetzt noch ne Weile überlegt, hier nen Codebeispiel. Ich weiß, dass es vllt doof klingt, aber so möchte ich es verstehen:
class testClass { protected function test1( $one, $two ) { ... } protected function test2($one, two, $three, $four) { .... } public function __call($name, $args { if ( method_exists( $this , $name ) { //entsprechende Funktion ausführen und ihr die Argumente übergeben } } }
Das sollte eigentlich besser als Beispiel gelten. Ich möchte nicht über den Sinn diskutieren, sondern wie ich es umsetze.
Liebe Grüße -
Da gäbe es natürlich das evil eval(). Es ist aber besser, wenn du das NICHT verwendest.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage