carsten schlichting: funktionen mehrere werte

hallo

kann mir eventuell jemand bei php funktionen helfen?

bisher habe ich in meiner internetseite PHP_programmcode mit hilfe von weiteren php-scripten  und include() eingebunden.

Jetzt wollte ich dies über Funktionen bewekstelligen aber habe festgestellen, das Funktionen immer nur einen wert zurückgeben können, oder arrays., was aber ein großer aufwand zu sein scheint oder vielmehr mich auf den gedanken bringt, das mein bisheriges system geeigneter ist.

meine theoretische von mir gewollte Funktionen müßte folgendermaßen lauten

function test($1_f,$2_f,$3_f) {

-programmcode-

return $1_f als $1
return $2_f als $2
return $3_f als $3

}

und dann aufgerufen durch ein

include(php-script mit der Funktion);
test($1, $2, $3);

in meinem bisherigen system kann ich immer ganz schnell den programmcode, der jetzt in einem extra script steht, aufrufen ohne alle variablen neu zuweisen  zu müssen. Mit den Funktionen schein ich da ganz umdenken zu müssen.

Mich würde einfach interessieren, wie hier jemand drüber denkt, der mehr Erfahrung im Programmieren hat.

habt vielen dank für feedback

Euer carsten

  1. Hallo carsten

    function test($1_f,$2_f,$3_f) {

    -programmcode-

    return $1_f als $1
    return $2_f als $2
    return $3_f als $3

    }

    Da is wirklich ein Array die beste Lösung !
    Du könntest auch ein Objekt machen
    Das wäre dann etwa so:

      
    $obj->1_f = "bla";  
    $obj->2_f = "test";  
    $obj->3_f = "testing";  
    return $obj;  
    
    

    Oder du machst eine IMHO komische Funktion

      
    function test($1_f, $2_f, $3_f) {  
      
    -programmcode-  
      
    global $1  
    global $2  
    global $3  
    return true;  
    }  
    
    

    Dann würde das danach funktionieren:

    test($1, $2, $3);

    Ist aber wirklich gewöhnungsbedürftigt !
    -> Es kommen immer diese 3 Variablen raus !
    --> IMHO sehr störend... aber es würde funktionieren

    Hoffe ich konnte helfen

    1. Hoffe ich konnte helfen

      auf jeden fall--danke

      --> IMHO sehr störend... aber es würde funktionieren

      da weiß ich jetzt noch nicht genau, was du damit gemeint hast. ??

      seh ich das, wenn ichs ausprobiere??

      also danke nochmal

      und grüße carsten

      1. --> IMHO sehr störend... aber es würde funktionieren

        da weiß ich jetzt noch nicht genau, was du damit gemeint hast. ??

        seh ich das, wenn ichs ausprobiere??

        Naja

        Diese Funktion "globalisiert" 3 Variablen.
        Die Variablen werden dann mit den Werten der Funktion überschrieben.
        ---> Wenn da was anderes drinn war, dann isses weg !
        ------> Klingelts ? ;-)

        Aber du wirst es bestimmt merken...

        Ich persönlich würde das wie gesagt ein Array oder sogar ein Objekt returnen
        Ein Objekt halt, wenn die Daten eng zusammenhängen.
        z.B. Eine Adresse :

          
        class Adresse {  
          var $strasse = "";  
          var $hausnr = "";  
          var $ort = "";  
          var $plz = "";  
          var $postfach = 0;  
          
          function __construct($strasse, $hausnr, $ort, $plz, $postfach = NULL) {  
            $this->strasse = $strasse;  
            $this->hausnr = $hausnr;  
            $this->ort = $ort;  
            $this->plz = $plz;  
            $this->postfach = $postfach;  
          }  
        }  
        
        

        Wenn du PHP 5 hast, dann machst du anstatt "var $strasse = "";" :
        public $strasse = "";

        Das is dann Strict kompatibel ;)

        So...
        Am besten guggst du dir dann auch mal das PHP Manual dazu an:
        PHP 4 => http://de2.php.net/manual/de/language.oop.php
        PHP 5 => http://de2.php.net/manual/de/language.oop5.php

        kleiner Tipp am rande
        PHP 4 => http://de2.php.net/manual/de/language.oop.constructor.php
        PHP 5 => http://de2.php.net/manual/de/language.oop5.decon.php

        Und noch einer:
        "new" mehr sog i net ;)

        So ich glaube ich hab genug geholfen ...

        Bis dann

        1. Danke schön sag ich da.

          hab mir das auch nochmal mit einem array und list angeschaut.

          http://de3.php.net/manual/de/functions.returning-values.php

          vielleicht ist das doch gar nicht so kompliziert, wie es anfänglich ausgesehen hatte. Das was ich bisher gemacht habe lasse ich mal so. aber ab jetzt steig ich dann mal in die Funktionen ein.

          also vielen dank

          für das halbe tutorial

          carsten

  2. Hi,

    Mich würde einfach interessieren, wie hier jemand drüber denkt, der mehr Erfahrung im Programmieren hat.

    Ich bevorzuge Arrays, aber mitunter sind Variablen-Referenzen einfach praktischer:

    function test(&$f1,&$f2,&$f3) {

    Deine ungültigen Variablennamen habe ich auch geändert, aber wichtig ist das & als Kennung für eine Referenz.

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!