kostenloser Webspace werbefrei: lima-city


Array als einzelne Argumente übergeben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    g****e

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    g****e

    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
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Da gäbe es natürlich das evil eval(). Es ist aber besser, wenn du das NICHT verwendest.
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!