+ Antworten
Ergebnis 1 bis 7 von 7

Thema: Funktion ähnlich array(); erstellen ?

  1. #1
    BIN EIN KRASSA HELD!!!111 Avatar von robo47
    Registriert seit
    02.06.2005
    Ort
    weiher im tiefsten Odenwald
    Beiträge
    1.390

    Standard Funktion ähnlich array(); erstellen ?

    Ich wollte wissen ob es möglich ist, einer Funktion so wie beispielsweise array();
    Parameter zu übergeben:
    PHP-Code:
    $array = array('key'=>'value'); 
    mein Versuch mittels:

    PHP-Code:
    <?php
    function test()
    {
        
    var_dump(func_get_args());
    }
    test('key'=>'value');
    ?>
    Führt nur zu:
    Parse error: parse error, unexpected T_DOUBLE_ARROW in test.php on line 6

    mfg
    robo47

  2. #2
    Mensch Avatar von WarrenFaith
    Registriert seit
    17.08.2005
    Ort
    Berlin
    Beiträge
    1.675

    Standard

    Klar geht das, allerdings nicht so wie du denkst :)

    Dynamische Parameter werden nur über deren Position definiert oder als kompletten String wie bei der URL übergeben.

    Folgendes sollte gehen (ungetestet):
    PHP-Code:
    <?php
    function test()
    {
        
    var_dump(func_get_args());
    }
    test('key=value');
    ?>
    Damit du dann aber an value rankommst, müsstest du in einer schleife alle Parameter durchlaufen und die Keys und Values einem Array zuweisen. Dann kannst du darauf normal zugreifen...

    [nachtrag]
    PHP-Code:
    <?php
    function test()
    {
        foreach (
    func_get_args() as $param) {
            
    $arr split("="$param);
            
    $newParam[$arr[0]] = $arr[1];
        }
        
    //var_dump(func_get_args());
        
    print_r($newParam);
    }
    test('key=value''muh=kuh');
    ?>
    Ausgabe:
    Code:
    Array ( [key] => value [muh] => kuh )
    
    Geändert von WarrenFaith (28.05.2007 um 14:23 Uhr)
    Rapid Android Development - droidnova.com
    SimCity für Android (bald Open Source) - Saint Feint City

  3. #3
    Erfahrener Benutzer Avatar von Chr!s
    Registriert seit
    04.09.2005
    Ort
    Nürnberg
    Beiträge
    561

    Standard

    Nur ein kleiner haarespaltender Nachtrag: split() ist hier unnötig, lieber explode() benutzen, denn Split arbeitet mit regulären ausdrücken und ist von daher langsamer.

    Dass bei Robo die Zuweisung mittels => nicht funktioniert liegt ganz einfach da dran, dass => ein von PHP festgelegtes Token ist (T_DOUBLE_ARROW) und von daher nur in einem bestimmen Kontext auftreten darf (nämlich beij zuweisen von Arraywerten).

  4. #4
    BIN EIN KRASSA HELD!!!111 Avatar von robo47
    Registriert seit
    02.06.2005
    Ort
    weiher im tiefsten Odenwald
    Beiträge
    1.390

    Standard

    hmm okay,
    dann werde ich es eh anders machen, mir hat das als syntax schön gefallen und ich wollte auf diesem weg einer methode parameter übergeben die intern dann als objekte gespeichert werden.

  5. #5
    Erfahrener Benutzer Avatar von $traight-$hoota
    Registriert seit
    15.09.2005
    Ort
    Königreich Flieden
    Beiträge
    724

    Standard

    Und warum nicht einfach so?
    PHP-Code:
    test(array('key'=>'value')); 
    Weißt Bescheid - Scheiß wie weit

  6. #6
    BIN EIN KRASSA HELD!!!111 Avatar von robo47
    Registriert seit
    02.06.2005
    Ort
    weiher im tiefsten Odenwald
    Beiträge
    1.390

    Standard

    doppelt gemoppelt :)
    Ich will ja eigentlich Objekte und dann von allem was ich übergebe erst noch ein array erzeugen um dann in der methode das ganze in ein objekt umzuwandeln hielt ich für unnötig :)

  7. #7
    Erfahrener Benutzer
    Registriert seit
    04.01.2006
    Beiträge
    964

    Standard

    Kannst Schlüssel und Wert der einzelnen Paare ja auch jeweils als ein Parameter übergeben:
    PHP-Code:
    <?php
    test
    ('foo'$foo'bar'42);
    Aber schön ist das sicher nicht.

    Der Konstruktor von ArrayIterator der SPL erwartet im Übrigen auch ein Array als erstes Argument:

    http://www.php.net/~helly/php/ext/sp...f6685af75146da

    Basti

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. [PHP] thumbnails erstellen - kleine Funktion
    Von Jann Hendrik im Forum Tutorials
    Antworten: 2
    Letzter Beitrag: 16.01.2008, 10:38
  2. [SUCHE] Funktion erstellen
    Von Jan im Forum Gesuche
    Antworten: 5
    Letzter Beitrag: 30.10.2006, 10:09
  3. [PHP] FTP-Funktionen in PHP nutzen
    Von MrNiceGuy im Forum Tutorials
    Antworten: 0
    Letzter Beitrag: 24.05.2006, 14:18
  4. Array in Bezug auf ein anderes sortieren...
    Von code5 im Forum PHP-Programmierung
    Antworten: 2
    Letzter Beitrag: 15.05.2006, 15:56
  5. Array erstellen
    Von Jan im Forum Datenbanken
    Antworten: 5
    Letzter Beitrag: 01.04.2006, 17:14

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein

Impressum · Tutorials · Nutzungsbedingungen · thematisch sortierte Linklisten · Spendenaufruf · Team · Partnerprojekte

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34